zygmunt137   4년 전

제가 짠 코드에서 취하고 있는 방법으로는

시간 초과가 날 수 밖에 없나요

아니면 다른 원인이 있나요

코드를 간략히 설명하자면

isReachable 함수는 (0,0)에서 (n,m)에 도달할 수 있는지 여부를 반환하는 함수이고 (vector<int> wall도 이 함수 내에서 갱신해줍니다)

전체적인 흐름은 room 배열에서 부술 수 있는 벽들(vector<int> wall)을 하나씩만 깨면서 각각을 큐에 넣어놓고 pop하는 bfs 방식을 취하고 있습니다.

dohoon   3년 전

bfs면 시간초과가 나긴 할 텐데, 코드가 너무 길어서 다른 방식으로 최적화하셨는지는 잘 모르겠네요...

미로가 너무 꼬여있어서 빙빙 돌아가야 하는 경우, 거의 (100^2)/2 정도의 방을 탐색해야 되는데 매번 4개로 다음 노드가 갈리니까

불가능해 보이기는 합니다.

참고로 이 문제는 다익스트라 알고리즘을 이용하는 것이 좋습니다.

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