hekoh99   2년 전

단순한 bfs로 풀면 풀리지 않는 이유가 해당 문제는 최단거리를 구하는 문제가 아니라 최소로 벽을 부시는 경로를 구하는 문제이기 때문이라고 알고 있습니다. 

즉 

6 5
000000
111110
000000
011111
000000

이러한 예제를 넣었을 때 빙빙 돌아 벽을 하나도 안 부시는 경로를 출력해야하는거죠

그래서 저는 모든 경로를 탐색해보고 그 중 벽을 최소로 부셨을 때의 부신 횟수를 출력하는 방식으로 코드를 짜봤습니다. 그래서 시간 초과는 날지라도 답은 제대로 출력되도록 말이죠

그 결과 위 예제에 대한 답 0 과 문제에서 제시된 예제를 포함하여 

23 3
00101110111000000110100
01001111101010010001100
11000001010110010110000

의 답 5

6 5
001011
110100
100110
101000
000010

의 답 1

을 잘 출력합니다

그래서 제출했을 때 시간초과는 나올 수 있어도 답이 틀리진 않을거라고 생각했는데 틀렸습니다가 나오는 이유가 궁금합니다.

아래 코드를 첨부하니 코드에서 문제가 있거나 반례가 있다면 알려주실 수 있을까요?

댓글을 작성하려면 로그인해야 합니다.