thetest1   2년 전

분명 예제 전부 맞았고 반례도 다 찾아보진 않았으나 이곳 게시물 반례들은 찾아서 넣었더니 통과되었습니다. 또한 무한루프 걸린다는 예시들이랑 N=20인 경우도 이 곳 질문에서 예시를 찾아서 다른 사람들 코드와 비교했을 때 시간초과가 안 나는 것을 확인하였습니다.

하지만 제출만 하면 25퍼에서 계속 시간초과가 나는 것을 해결하지 못 했었습니다.

그런데 다른 분의 글을 보니 저와 같은 증상을 겪고 있었고 그 해결법은 큐에서 꺼낸 다음에 방문 처리를 하면 시간초과가 나는 것이고 큐에 넣을 때 방문 처리하면 시간초과가 나지 않는 것이었습니다.

왜 이러한 결과가 나는 것일 까요?

어차피 큐에서 꺼낼 때 방문 처리하나 큐에 넣을 때 방문 처리하나 코드가 실행되는 건 변함없고 코드도 1줄 뿐인데 왜 이런 차이가 나는지 이해가 잘 안됩니다.

djm03178   2년 전

큐에서 뺀 뒤에 처리하면, 동시에 여러 칸에서 같은 칸을 방문하는 경우에 그 모두가 큐에 들어가게 되고, 거기서 나온 칸이 방문하는 칸들도 모두 그 횟수만큼 + 다른 칸에서 온 횟수만큼 중복되어 큐에 들어가고... 하는 것을 반복하게 됩니다.

thetest1   2년 전

큐에 들어갈 땐 중복될 수 있다는 걸 놓친 부분이었군요

감사합니다

그냥 방문 처리했으니 중복되진 않겠지하는 막역한 생각을 했네요

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