
[백준] 1937번 - 욕심쟁이 판다 (C언어) [Gold3]
·
알고리즘
input output 4 14 9 12 10 1 11 5 4 7 15 2 13 6 3 16 8 4 해당 문제를 먼저 해석하면, n x n 크기의 대나무 숲은 2차원 배열로 정의한다. 판다는 대나무가 많은 곳으로 이동하기 때문에 판다가 이동하는 만큼 생존한다고 볼 수 있다. 판다가 생존 가능한 최대 일 수는 아래 표로 정리하였다. 해당 문제는 DFS와 동적 계획법을 사용한다면 해결가능한 문제이다. 만약, DFS만을 진행한다면 이미 탐색한 곳에 대해서 다시 탐색하는 의미없는 탐색을 진행하기 때문에 최대 깊이까지 탐색한 후 백트래킹을 통해 동적계획법의 값을 저장한다. 백트래킹시에 현재 값에 1을 더해준 값을 반환한다. 전체 소스 코드는 아래와 같다. #include #define max(X,Y) ((X) >..