grapecw   3년 전

통과된 코드를 그대로 올려드립니다.

저는 방문 표시를 int[][]배열로 하였고, 그 방문된 장소를 벽을 부신 갯수로 저장하고, 만약 그곳가지 벽을 부시고 도착한 갯수가 적다면 그대로 진행하지만, 만약 벽을 더 많이 부시고 도착했으면 continue를 하게 만들었습니다.


그런데 처음에 낸 코드는 58~60번 줄의

// 밑에서 방문 표시를 해준 곳에 큐가 여러번 들어가므로 다시 한번 검사
else if (visited[curr.y][curr.x] < curr.broken)
    continue;

를 없이 제출하니 실패가 떴습니다.

즉, 큐에 한번 방문 표시가 된 곳이 벽을 부시고 들어간게 크더라도 여러번 들어가서 시간 초과가 뜨는 것 같은데
디버깅을 해봐도 이유를 알 수 없더군요.

혹시 원인이 뭔지 알려주실 수 있으십니까?

grapecw   3년 전

자문 자답입니다.

68번째 줄에 문제가 있었네요. 현재 broken이 아니라 넣을 broken 기준으로 생각해야 됬습니다.

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