BOJ_1520_G4_내리막길

Chung Lee·2022년 4월 21일
0

알고리즘

목록 보기
16/21

문제 링크 : https://www.acmicpc.net/problem/1520

교수님이 문제에 대해 간단히 설명해주실 때 본 코드는 DFS로 푸는 방식이었습니다.

하지만 막상 DFS로 접근하려니 마땅한 방법이 떠오르지 않았습니다.

아무래도 재귀적 마인드가 깊지 않아서 그런 것 같았습니다.

그래서 다른 방법은 없을까 하던 도중 문제의 규칙을 적절히 활용하면 또한 가지치기가 가능하다고 생각되어 BFS 방식으로 문제를 해결하였습니다.


기본 변수들을 초기화합니다. 문제에서 중요한 것은 우선순위 큐를 설정하고 더 큰 값이 먼저 나올 수 있도록 comparator을 설정합니다.


보드의 가로, 세로를 입력받고 보드의 각 자리에 대한 값들을 입력받습니다.


우선순위 큐를 활용해서 가장 큰 값을 우선 꺼내서 진행을 시킵니다.
이러면 두 수가 만나는 분기가 존재할 때 모든 수는 그 분기를 기점으로 더 큰 값들이 진행되기 전까지 잠시 멈추게 됩니다.
그리고 해당 분기에 도달해야하는 모든 값들이 도달하게 되면 그 때 그 분기보다 더 작은 값으로 이어서 진행이 됩니다.

0개의 댓글