🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

3-D 반례 질문드립니다.

24.02.14 12:50 작성 조회수 97

0

안녕하세요 선생님. 예제와 커뮤니티의 반례들은 모두 통과하는데, 백준 2%에서 오답으로 처리되어 질문드립니다.

불이 시작되는 부분부터 BFS를 통해 표시를 해두고, J를 dfs로 움직이게 하는 로직으로 구현했습니다.

 

http://boj.kr/8202d9f54d6b45e489a6888088d047e1

답변 1

답변을 작성해보세요.

1

안녕하세요 지호님 ㅎㅎ

DFS는 최단거리로 가는 것을 장담을 하지 못합니다.

즉, 이렇게도 갈 수가 있습니다.

image

이 때문에 반례가 뜨게 됩니다. time을 매개변수를 걸어서 + 1을 기반으로 하신 것은 좋으나.

이미 앞선 코드의 visited를 걸어놔서 방문한 정점은 다시 방문을 하지 못하게 되어 로직 자체가 꼬입니다.

        if(vis[nx][ny] || a[nx][ny] == -1) continue;
        if(a[nx][ny] != 0 && a[nx][ny] <= time+1) continue;

 



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


김지호님의 프로필

김지호

질문자

2024.02.16

감사합니다. 덕분에 해결했습니다

채널톡 아이콘