맨 처음 (1,1)을 삽입 할 때 visited[1][1] = 1 해줘야 하지 않나요?
2206번 - 벽 부수고 이동하기
저도 틀린 점 막 고쳐 보느라고 수정한 소스가 더럽긴 한데.... 아래 처럼 수정하면 됩니다.
그 이유는 동일한 점에 도달한 거리가 동일하더라도 벽을 부수고 온 경우보다 벽을 부수지 않고 온 경우가 더 나아갈 가능성이 높기 때문에
둘 경우를 구별 해줘야 하기 때문입니다.
2 4
0111
0010
이런 예시가 있다면 (1,1)->(2,1)->(2,2)->(2,3)->(2,4)으로 도착이 가능 합니다.
하지만 기존의 코드로 하면 만약에 (1,1)->(1,2)->(2,2)으로 해서 visited[2][2]를 먼저 채워 버리면 위의 정답 예시 경로가 (2,2)를 지나지 못해서 -1을 출력해 버립니다. 그래서 이 두 경우를 구별해줘야 하는 겁니다.
댓글을 작성하려면 로그인해야 합니다.
na982 7년 전
심플하게 bfs로 탐색하는 로직입니다.;
문제 및 질문 란에 있는 셈플 답안은 모두 정상적으로 나오는데; 안되네요;