tlagmlwns12   3년 전

백준 미로탐색 bfs사용해서 풀어보려고 한건데 시간초과가 도대체 왜 나는지 모르겠어요 도와주세요 ㅠㅠ

ploffer11   3년 전

visit이 너무 비효율적입니다.

기본적으로 리스트에서 in 연산자는 선형비교일 수밖에 없기 때문에 리스트의 크기에 시간복잡도가 의존합니다.

visit이 커짐에 따라 visit체크하는 부분의 시간복잡도가 O(nm)이 되므로 느릴 수 밖에 없습니다.


visit을 이차원 배열로 만들어 접근 시간을 O(1)로 하면 통과하지 않을까 생각이 드네요.

djm03178   3년 전

BFS는 큐에 원소를 삽입하기 전에 방문 표시를 해야 중복 방문을 막을 수 있습니다.

그리고 in은 리스트 전체를 순회해야 하기 때문에 현재 리스트 길이에 비례하는 시간이 걸리는 연산입니다.

tlagmlwns12   3년 전

고수님들 말씀하신데로 코드 해봤는데 이런식이 아닌가요 

시간초과가 계속 나서,,,

djm03178   3년 전

"BFS는 큐에 원소를 삽입하기 전에 방문 표시를 해야 중복 방문을 막을 수 있습니다."

를 처리하지 않으셨습니다.

tlagmlwns12   3년 전

감사합니닷 !

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