jadebaek   5년 전

대략적인 구조는

while(큐가 비지 않음) {

    if(큐가 불일 경우) {

        불이 사방으로 퍼짐

        방금 퍼진 불 위치 큐에 저장

        continue

    }

    상근이 이동

    방금 기록된 상근이 위치 큐에 저장

}

while이 끝나도 함수가 끝나지 않은 경우 - IMPOSSIBLE

입니다.

count는 단계별로 상근이가 이동하는 경로이고,

45~46번째 줄은 상근이가 방금 있던 자리에 불이 오는 경우에 대비해서 예외처리 해놓은 겁니다.

토마토 문제도 중간까지 가고나서 시간초과 뜨던데... 제 bfs 구성에 문제가 있는 것 같습니다.

고수분들의 도움을 요청해요!! ㅠㅠ

hello70825   5년 전

del queue[0]은 queue.pop(0)과 똑같이 시간 복잡도가 O(N)입니다.

그래서 O(1)로 뺄 수 있는 deque를 사용하셔야 합니다

그리고 상근이가 이동할 때 범위 확인해주셔야 합니다.

반례 드립니다.

둘 다 답은 1인데 하나는 에러가 나오고, 하나는 답이 다르게 나옵니다.

jadebaek   5년 전

답변 감사드립니다!! del의 시간복잡도를 몰랐네요 ㅠㅠ

많은 도움이 되었습니다 ㅠㅠ

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