shchon1993   4년 전

최대한 코드를 최적화하였다고 생각합니다. 78~79%에서 계속 시간초과가 발생하는데 어느 부분에서 시간초과가 발생하는 걸까요?

junhok82   4년 전

모든 코드를 보지 않았지만 57번째줄에 visited 배열을 계속 선언을 해줄 이유가 없어보입니다.

junhok82   4년 전

그리고 맵을 copy하시는데, 위와 같은 방식으로하면 모든 배열 인덱스를 순회하기때문에 비효율적입니다. ArrayList에 list.add(new int[] {y,x}) 이런식으로 변경된 부분만 체크해서 맵을 변경하시면 될거같아요

junhok82   4년 전

위와 같은 맥락으로 "순회할 곳만 순회해야한다"는 시간을 줄이는데 좋은 포인트입니다.

위와 같은 방법으로도 충분히 통과하지만, 더욱 시간을 줄이기 위해서 main함수에서 `모든 배열의 인덱스를 조회`하면서 bfs() 하지말고, bfs() 후 `변경된 부분`에 있어서만 처리하는 것이 많은 시간을 줄여줄겁니다.

shchon1993   4년 전

좋은 댓글 감사합니다!

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