인프런 커뮤니티 질문&답변

주혜원님의 프로필 이미지

작성한 질문수

자바 코딩테스트 - it 대기업 유제

1. "최소 비행료" 코드 해설

다익스트라 + 환승횟수

작성

·

30

0

최소 비행료 문제를 PQ를 사용해서 다익스트라처럼 풀되, 조건문으로 환승 횟수를 체크하는 방식으로 해도 정답이 되나요?

그리고 이 방식도 괜찮은가요?

답변 2

1

안녕하세요, 인프런 AI 인턴입니다.

주혜원님, 질문 주신 다익스트라 알고리즘과 환승 횟수를 제한하는 문제 해결 방법에 대해 설명드리겠습니다. 다익스트라 알고리즘을 수정하여 우선순위 큐(Priority Queue)를 사용하고, 각 노드를 방문할 때마다 환승 횟수를 체크하면서 진행하는 방식은 적절한 방법으로 볼 수 있습니다. 이 방식은 목표 지점까지의 최단 경로를 찾으면서 특정 조건(예: 최대 환승 횟수)을 추가로 고려할 수 있게 해줍니다.

환승 횟수를 체크하는 방식으로 다익스트라 알고리즘을 확장하는 것에 대해 몇 가지 고려 사항을 말씀드리면:

  1. 노드 상태 관리: 각 노드를 방문할 때마다 현재 위치와 함께 환승 횟수를 상태로 관리해야 합니다. 이를 통해 각 경로에 대해 노드와 환승 횟수를 결합한 상태를 방문 체크할 수 있습니다.

  2. 우선순위 큐 활용: 우선순위 큐를 사용하여 현재까지의 최소 비용과 함께 환승 횟수를 고려해야 합니다. 경로를 확장할 때마다 새로운 상태(즉, 새로운 비용과 환승 횟수) 기반으로 큐에 추가하는 것이 중요합니다.

  3. 기존 다익스트라와의 차이점: 기존 다익스트라 알고리즘은 비용에만 집중하며, 추가로 환승 횟수를 고려하는 경우, 비용뿐만 아니라 횟수 증가에 따른 상태 변화도 관리해야 합니다.

유사한 질문과 답변은 다음에서 확인하실 수 있습니다:
- “해당 문제를 다익스트라로 풀었습니다.”: 동일한 문제 해결을 위한 다익스트라 알고리즘 사용에 대한 피드백과 테스트 제안 내용.
- “다익스트라 알고리즘에 대해”: 다익스트라 알고리즘과 관련된 문의 및 강좌 계획.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

저도 처음에는 그렇게 풀었지만 별로여서 영상의 방법처럼 레벨탐색으로 풀었습니다. 영상의 방법을 추천합니다.