일단 불필요한 부분이 조금 있습니다.
- oq가 필요없습니다.
굳이 oq에 쌓았다가 q에다가 다시 쌓기보다는 DFS에서 깊이가 증가할 때 마다 배열 하나로 처리하면 oq가 필요없습니다.
for문으로 후보군을 모두 돌아볼 필요없이 골라진 것만 담으면 됩니다.
2. 시간반환하는 2차원 배열을 사용하기 보다는 BFS에서 시간을 체크해주면 됩니다. 그러면 굳이 2중 for문을 계속 돌릴 필요가 없습니다.
oq를 지워본 코드를 부분적으로 작성했습니다.
17142번 - 연구소 3
일단 불필요한 부분이 조금 있습니다.
굳이 oq에 쌓았다가 q에다가 다시 쌓기보다는 DFS에서 깊이가 증가할 때 마다 배열 하나로 처리하면 oq가 필요없습니다.
for문으로 후보군을 모두 돌아볼 필요없이 골라진 것만 담으면 됩니다.
2. 시간반환하는 2차원 배열을 사용하기 보다는 BFS에서 시간을 체크해주면 됩니다. 그러면 굳이 2중 for문을 계속 돌릴 필요가 없습니다.
oq를 지워본 코드를 부분적으로 작성했습니다.
댓글을 작성하려면 로그인해야 합니다.
sminhyuck 4년 전
코드를 다음과 같이 최대한 적게 돌아가도록 줄여봤는데, 어느 부분때문에 시간초과가 발생하는지 잘모르겠습니다.
시간 초과 나지 않게끔 어느 부분을 어떻게 수정하면 나아질지 조언 부탁드립니다!
시간초과는 시작하고 1%에서 초과가 뜹니다 ㅠㅠ