해결된 질문
작성
·
19
0
큰돌님 처음에 강의 안 보고 제 마음대로 구현 했는데 시간초과로 실패했습니다.
http://boj.kr/7734de2a971e4fa7b37a8dfce748f423
└ 이 코드인데
시간 복잡도는 무시하고 봤을 때 로직 자체는 맞는지 궁금합니다
그리고 맞다면 제 코드의 시간 복잡도가 얼마인지와, 큰돌님 코드의 시간복잡도는 얼마인지 궁금합니다.
마지막으로 강의 보고 복기하면서 구현했는데
http://boj.kr/66f1b9db5aac45a2b9b861e67ab52543
왜 제 코드는 prev 변수를 쓰면 컴파일 오류가 나는 것인가요 ??
답변 2
1
안녕하세요 대기업님 ㅎㅎ
1번 : 네 맞습니다.
2번 : 최대경로가 D라고 했을 때 대기업님은 매번 반복하기 때문에 O(V * D)이고 제꺼는 O(V + D)가 됩니다.
3번은 교안의 다음 부분 참고부탁드립니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다. 대기업목표님.
로직 자체의 타당성: 제시하신 로직을 간략히 분석한 결과, 기본적으로 숨바꼭질 유형 문제에서의 그래프 탐색 방법론을 사용한 것으로 보입니다. 즉, BFS(너비 우선 탐색)를 통해 최단 경로를 찾는 방식인데, 올바르게 구현하셨다면 논리적으로 맞아야 합니다. 하지만 구체적인 코드 구현에 따라 달라질 수 있으니 강사가 제공한 해설 코드와 비교하며 차이점을 확인하는 것이 중요합니다.
시간 복잡도:
O(N + M)
이며, 여기서 N
은 노드의 수, M
은 간선의 수입니다. 문제의 특성상 주어진 수의 범위 내에서 관련 노드를 탐색하므로 O(N)
형태로 간주할 수 있습니다.prev
변수를 사용하는 과정에서 컴파일 오류가 발생했다면, 이 변수의 선언과 초기화, 그리고 사용 위치를 확인하는 것이 중요합니다.prev
변수를 사용했을 때 해당 변수가 함수 내부에 정확히 여러 번 선언되었거나 범위를 벗어났거나 정확히 초기화되지 않은 것이 원인이 될 수 있습니다. 따라서, 변수를 사용할 때 적절한 범위 내에 선언되었는지, 초기화가 제대로 되었는지 확인해야 합니다.prev
가 이미 다른 목적으로 사용되거나 예약어로 설정되어 있을 수 있습니다. 따라서 변수명을 변경하여 해결할 수 있는지 확인해 보세요.이전에 비슷한 문제들이 질문되어 해결된 사례를 참고하시면 도움이 될 것입니다. 다음 링크들을 확인해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.