na982   7년 전

심플하게 bfs로 탐색하는 로직입니다.;

문제 및 질문 란에 있는 셈플 답안은 모두 정상적으로 나오는데; 안되네요;

ainch96   7년 전

맨 처음 (1,1)을 삽입 할 때 visited[1][1] = 1 해줘야 하지 않나요?

na982   7년 전

그부분이 빠졌네요; 하지만 수정해도; 오답이라고 나오네요;

ainch96   7년 전

저도 틀린 점 막 고쳐 보느라고 수정한 소스가 더럽긴 한데.... 아래 처럼 수정하면 됩니다.

그 이유는 동일한 점에 도달한 거리가 동일하더라도 벽을 부수고 온 경우보다 벽을 부수지 않고 온 경우가 더 나아갈 가능성이 높기 때문에

둘 경우를 구별 해줘야 하기 때문입니다.

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을 출력해 버립니다. 그래서 이 두 경우를 구별해줘야 하는 겁니다.


ainch96   7년 전

근데 맞추고 다른 분들 소스 읽으니까 제 소스가 엄청 별로군요... 일단 맞추시고 더 좋은 소스 읽으세요 ..ㅠㅠ

na982   7년 전

@pinch3773 님 많이 배우고 갑니다. 감사합니다.

wjddms206   7년 전

pinch3773 

덕분에 많이 배웠습니다. 감사합니다.

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