for (dn = 0; dn <= mid; dn++)
이 부분이 문제가 되는 것 같습니다.
극단적인 예시로, mid의 값이 1일때를 검사하는데, (1,1)에서 (N,N)까지 가는 길이 7 7 7 7 7 7...7 7로 도배되어 있는 경우를 들 수 있습니다.
프로그램이 원하는 대로 작동을 한다면 bfs는 true를 리턴하여 answer의 값을 1로 수정해야겠지만,
작성하신 프로그램에서는 bfs(0,1) / bfs(1,2)만 확인해보게 되고, (bfs(7,8) 등은 확인하지 않고) 그 결과 1은 answer가 될 수 없다고 판단하게 됩니다
mypark3424 8년 전
몇 주동안 고민해봤는데도 풀리지가 않아서 질문드립니다.
최소값과 최대값의 간격만큼 계속해서 bfs를 돌리는데요 분명히 틀린 경우가 없는 것같은데 계속 틀려서 질문드립니다.
도와주세요~~!!!