chlghksdyd24   1년 전


안녕하세요 알고리즘을 잘하고 싶은 초보입니다.

문제를 풀다가 궁금한 점이 있어 질문을 남깁니다.

for문을 사용하여 시간복잡도를 계산하는 방법은 알겠는데 2665번 문제 같이 bfs문제에서 큐를 사용하여 문제를 풀 때 시간 복잡도를 어떻게 따져야 되나요?

큐에 얼마 만큼의 데이터가 삽입될지 대략적으로 알 수 있는 방법이 있나요?

물론 코드에 탐색 대상의 칸(nx,ny)이 현재 있는 칸(x,y)의 방 바꾼 횟수 보다 크면 큐에 삽입하는 조건문을 달았기 때문에 무한 루프를 타지 않을거 라는 걸 알

지만 정확한 시간 복잡도를 따지는 방법이 있는지 궁금해서 글을 올립니다.

답변 주시면 정말 감사하겠습니다.

headmeat   1년 전

배열(지도) 상의 모든 노드는 방문할 때마다 visited 처리를 해주고 이후에 재방문하지 않기 때문에 BFS의 시간 복잡도는 O(n) (n: 배열 크기)와 같지 않을까요.

chlghksdyd24   1년 전

감사합니다!

headmeat   1년 전

BFS 시간 복잡도는 O(V + E)네요.

BFS랑 다익스트라 차이점도 알아두면 좋을 것 같네요.

Difference Between BFS and Dijkstra's Algorithms | Baeldung on Computer Science

chlghksdyd24   1년 전

네 감사합니다 잘 읽어 보겠습니다^^

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