티스토리 뷰

알고리즘

백준 - 내리막 길

koyuchang 2021. 6. 23. 15:31

문제 출처: https://www.acmicpc.net/problem/1520

 

1520번: 내리막 길

여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으

www.acmicpc.net

 

초기 기획

N, M의 범위가 크므로 DFS보다는 BFS를 사용하는 것이 더 좋다고 판단했다. 목적지에 도착할 때까지 방문 체크를 하고, 다른 길을 통해 이동하다가 방문된 곳을 만나면 더 이상 진행시키지 않고 이동 가는 한 길 +1을 해주었다.

이 방법으로 진행 하니 '메모리 초과' 에러가 발생하였다.

 

최종 기획

메모이제이션이 필요하다는 것을 파악했다. 결국 DP+DFS가 사용되어야 한다.

 

처음에 도착하고 나면 배열이 위와 같이 설정된다.

여기서 필자는 copy라는 2차원 배열을 만들어서 사용했다.

 

다음에는 다른 방향으로 이동하였을 경우다. 여기서 1,4 위치에서 다시 한번 분기하여 다른 방향으로 재귀를 돌게 된다.

 

마지막 길을 통해 이동하였을 때의 copy배열의 모습이다. 

 

 

 

'알고리즘' 카테고리의 다른 글

프로그래머스 - 정수 삼각형  (0) 2021.06.27
백준 - 계단 오르기  (0) 2021.06.24
백준 - ZOAC  (0) 2021.06.21
SWEA - 프로세서 연결하기  (0) 2021.06.19
백준 - 게리맨더링  (0) 2021.06.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함