알고리즘/programmers

[Programmers 코딩테스트 고득점 Kit] 등굣길

꾸준함. 2021. 9. 22. 14:22

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42898

 

코딩테스트 연습 - 등굣길

계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =

programmers.co.kr

앞선 문제에 이어 전형적인 DP 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 웅덩이 좌표를 set에 저장해줍니다.

2. 오른쪽, 아래쪽으로만 움직일 수 있으므로 DP의 점화식을 [y, x]까지의 최단 경로 = [y - 1, x]까지의 최단 경로 + [y, x -1]까지의 최단 경로로 정의해줍니다.

3. 2번 식을 적용하여 이중 반복문을 돌리는데 웅덩이 위치는 밟을 수 없으므로 0으로 초기화하고 나머지 좌표에 대해서는 점화식을 적용해줍니다.

4. 3번을 통해 구한 [n, m]까지의 최단경로 수를 반환해줍니다.

 

 

개발환경:Visual Studio 2017

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형