ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION124 / 1500
알고리즘난이도 중하5분 답변 목표 · 보강본

최단 경로에 음수 간선이 있습니다. Dijkstra에 같은 우선순위 큐를 쓰면 왜 보장이 깨지나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

Dijkstra는 가장 작은 미확정 거리를 꺼냈을 때 그 거리가 더 낮아지지 않는다는 비음수 간선 전제에 의존합니다. 음수 간선이 있으면 나중에 우회해 이미 처리한 노드의 거리를 낮출 수 있습니다.

동작 원리와 전제

A에서 B까지 2, A에서 C까지 5, C에서 B까지 -4이면 B를 2로 확정한 뒤 실제 더 짧은 1 경로가 나타납니다. 구현에 따라 재처리할 수 있어도 표준 Dijkstra의 정확성·복잡도 보장과는 다릅니다.

선택과 실패 처리

음수 간선이 필요한 모델이면 Bellman-Ford나 그래프 구조에 맞는 알고리즘을 검토합니다. 음수 cycle이 도달 가능한 경로에 있으면 유한 최단값 자체가 없을 수 있습니다. 비용 모델을 바꿔 음수를 제거할 때도 경로 순서가 보존되는지 확인합니다.

구체적인 사례와 검증

음수 간선이 있어도 특정 입력에서는 Dijkstra 결과가 우연히 맞을 수 있습니다. 그 관찰을 일반 보장으로 삼으면 안 됩니다. 알고리즘이 pop한 노드를 영구 확정하는지, 더 작은 값이 오면 재삽입하는지에 따라 실패 양상과 시간 복잡도가 달라집니다. 음수 cycle은 단순히 느린 탐색이 아니라 최솟값이 계속 내려가 유한 해가 없는 경우일 수 있습니다. 출발점에서 도달 가능한지와 목표에 영향을 주는 cycle인지도 문제에 맞춰 봅니다. 비용을 상수만 더해 양수로 만들면 간선 수가 다른 경로의 상대 비용이 달라질 수 있으므로 무조건적인 변환은 하지 않습니다.

작은 반례·음수 cycle·도달 불가·0 비용을 시험합니다. 우선순위 큐 선택이 알고리즘 전제를 대체하지 않습니다. 최단 경로와 MST의 음수 가중치 허용은 다른 문제이므로 구분하겠습니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: Dijkstra는 가장 작은 미확정 거리를 꺼냈을 때 그 거리가 더 낮아지지 않는다는 비음수 간선 전제에 의존합니다.
  • 선택 조건: 음수 간선이 필요한 모델이면 Bellman-Ford나 그래프 구조에 맞는 알고리즘을 검토합니다.
  • 검증 기준: 작은 반례·음수 cycle·도달 불가·0 비용을 시험합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • 음수 간선에 상수를 더해 양수로 바꾸면 모든 최단 경로 순서가 보존된다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 간선 수와 총비용 중 무엇을 최소화하는지에 따라 어떤 탐색을 선택하나요?
  • 목표 방향 추정이 있어도 최단성을 유지하려면 휴리스틱에 어떤 하한 조건이 필요한가요?
  • 전체 연결 비용을 줄이는 트리와 출발점별 최단 경로는 왜 다른 목적이 되나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기