일단 처음 봤을 때 발생한 문제라 생각해서 수정을 했으나 시간초과를 받았습니다.
맵에 대한 경계조건이 없다. Out Of Memory => 경계조건 작성
큐에 push할 수 있는 횟수는 100,000 을 초과할 수 없다. => 원형큐사용
다음으로 생각한 부분은 BFS에 대한 방문이해가 잘못되어있다고 보았습니다.
큐에서 꺼내면서 방문표시를 하는 것이 아닙니다. 큐에 넣으면서 방문표시를 해야합니다. 이유는 처음으로 그 지점을 방문했을 때 현재있는 위치에서 count된 값 + 1 이 최소이기 때문입니다. 만약 그렇지 않고 항상 4방향, 3방향을 큐에 넣게 됩니다. 이때 맵이 작을 경우 "틀렸습니다." 맵이 클 경우 "시간초과"를 받게 될 수 있습니다.
아래는 코드를 첨부합니다.
iron1209 5년 전 3
제가 이 문제를 풀어보려고 거의 8시간정도 쓴 것 같습니다. 처음 코드를 짯을때도 계속 틀렸습니다 나와서 2번정도 새로 코드를 짯습니다.
한참을 찾으면서 다른 코드와 비교해보고 확인도 해 보았습니다. 예시와 반례도 이 게시판 모두 다 뒤져 보면서 입력해 보았지만 모두 정답이 나왔습니다.
하지만 계속 채점에서만 틀리게 나오고 있습니다. 현명한 답변을 부탁드립니다. (시간초과는 확실히 아닙니다.)