
[프로그래머스] level.2 - 미로 탈출(C++)
·
🖥️ Study Note/Coding Test
https://school.programmers.co.kr/learn/courses/30/lessons/159993#qna 내 해답 문제 접근은 쉽지만, 시간 복잡도 때문에 고생한 문제이다. 문제에는 ‘출구는 레버가 당겨지지 않아도 지나갈 수 있으며, 모든 통로, 출구, 레버, 시작점은 여러 번 지나갈 수 있습니다.’ 라고 적혀있는데 내 방식에서는 이게 함정이 되었다. 목적지는 레버와 출구 2개가 있는데 각 목적지까지 가는 길에 재방문은 안된다. 그러니까 (시작점→레버) , (레버→ 출구) 경로에 재방문을 허용하면 너무 느리다. 따라서 (시작점→레버) + (방문 기록 초기화) + (레버→ 출구) 이런 식으로 해결했다. 결국 하나의 q에서 BFS를 두 번 도는 형식으로 해결한 것이다. #include #i..