+ 핵심·절차·예시·복잡도를 가장 간결하고 정확하게 담았다.
- 초보자 맞춤 배경 설명과 실제 구현 예시는 비교적 적다.
알고리즘 이름과 난이도를 넣으면 핵심 아이디어, 단계, 복잡도와 효율, 필요시 예시나 시각 자료를 간단한 말로 설명합니다.
| 분류 | 개발 › 코딩 |
|---|---|
| 태그 | 요약분석개발자 |
Act as an Algorithm Expert. You are an expert in algorithms with extensive experience in explaining and breaking down complex algorithmic concepts for learners of all levels.
Your task is to provide clear and concise explanations of various algorithms.
You will:
- Summarize the main idea of the algorithm.
- Explain the steps involved in the algorithm.
- Discuss the complexity and efficiency.
- Provide examples or visual aids if necessary.
Rules:
- Use simple language to ensure understanding.
- Avoid unnecessary jargon.
- Tailor explanations to the user's level of expertise (beginner, intermediate, advanced).
Variables:
- ${algorithmName} - The name of the algorithm to explain
- ${complexityLevel:beginner} - The level of complexity to tailor the explanation학습자 수준에 맞춰 알고리즘을 빠르게 이해시키는 설명 역할이다. 불필요한 전문 용어를 피하라고 지시하며 초급, 중급, 고급 난이도 변수를 둔다.
ChatGPT가 정확성과 간결성의 균형이 가장 좋다. Gemini와 Claude는 더 친절하고 구체적이지만 분량과 일부 표현에서 손해를 본다.
+ 핵심·절차·예시·복잡도를 가장 간결하고 정확하게 담았다.
- 초보자 맞춤 배경 설명과 실제 구현 예시는 비교적 적다.
+ 표와 실행 가능한 코드로 알고리즘 흐름을 구체화했다.
- 요구 이상으로 길며 힙 삽입 설명이 다소 단순화됐다.
+ 그래프 기초부터 갱신 과정까지 눈높이에 맞게 설명했다.
- 설명이 다소 길고, 양수라는 표현은 0을 빠뜨린다.
| 기준 | ChatGPT | Claude | Gemini | 앞선 모델 |
|---|---|---|---|---|
| 지시 준수 | 10 | 10 | 10 | 동점 |
| 정확성 | 10 | 9 | 9 | ChatGPT +11% |
| 구체성 | 9 | 10 | 10 | 동점 |
| 구성·가독성 | 10 | 9 | 9 | ChatGPT +11% |
| 분량 적정성 | 10 | 7 | 7 | ChatGPT +43% |
gpt-5.6-sol가 모델 이름을 가린 채 1~10점으로 채점했습니다 (2026-09-24). 측정값이 아니라 AI 심사 결과입니다.
같은 입력을 세 모델에 넣어 받은 답을 그대로 옮겼습니다. 각 CLI(에이전트 하네스)에서 실행했습니다. ChatGPT·Claude 앱이나 웹에서는 답이 다를 수 있습니다.
[붙여 넣은 자료] 알고리즘 이름: 다익스트라(Dijkstra) 최단 경로 알고리즘 난이도: beginner (컴퓨터공학 전공 1학년, 자료구조는 배웠지만 그래프 이론은 처음 접함)
다익스트라 알고리즘은 가중치가 있는 그래프에서 한 시작점으로부터 다른 모든 정점까지의 최단 거리를 구하는 알고리즘입니다.
단, 모든 간선의 가중치가 0 이상이어야 합니다. 음수 가중치가 있으면 다익스트라 알고리즘을 사용할 수 없습니다.
현재까지 가장 가까운 정점을 하나씩 선택하고, 그 정점을 거쳐 가는 경로가 더 짧은지 확인합니다.
즉,
“현재 가장 가까운 정점은 최단 거리가 확정되었다고 보고, 그 정점을 이용해 주변 정점의 거리를 개선한다.”
이 과정을 반복합니다.
2
A ------ B
| |
5| |1
| |
C ------ D
2
시작 정점을 A라고 하겠습니다.
A에서 D로 가는 방법은 두 가지입니다.
따라서 최단 거리는 A → B → D, 거리 3입니다.
시작점 A의 거리를 0으로 설정하고, 나머지는 무한대로 설정합니다.
| 정점 | 현재까지의 최단 거리 |
|---|---|
| A | 0 |
| B | ∞ |
| C | ∞ |
| D | ∞ |
A에서 갈 수 있는 정점을 확인합니다.
| 정점 | 거리 |
|---|---|
| A | 0 |
| B | 2 |
| C | 5 |
| D | ∞ |
아직 처리하지 않은 정점 중 B의 거리가 가장 작습니다.
B에서 D로 갈 수 있으므로 거리를 계산합니다.
A → B → D = 2 + 1 = 3
기존 D의 거리보다 작으므로 D의 거리를 3으로 바꿉니다.
| 정점 | 거리 |
|---|---|
| A | 0 |
| B | 2 |
| C | 5 |
| D | 3 |
D의 거리는 3입니다. D에서 더 짧은 경로가 만들어지는지 확인하지만, 새로운 최단 경로는 없습니다.
C의 거리는 5입니다. C를 거쳐 D로 가면 다음과 같습니다.
A → C → D = 5 + 2 = 7
현재 D의 거리 3보다 크므로 바꾸지 않습니다.
최종 결과는 다음과 같습니다.
A에서 A까지: 0
A에서 B까지: 2
A에서 C까지: 5
A에서 D까지: 3
0으로 설정합니다.거리를 갱신하는 과정은 다음과 같이 표현할 수 있습니다.
새로운 거리 = 현재 정점까지의 거리 + 간선의 가중치
새로운 거리가 기존 거리보다 작으면 값을 바꿉니다.
거리[start] = 0
다른 모든 정점의 거리 = 무한대
반복:
아직 방문하지 않은 정점 중
거리가 가장 작은 정점 u를 선택
u를 방문 처리
u와 연결된 각 정점 v에 대해:
새로운 거리 = 거리[u] + u에서 v까지의 가중치
새로운 거리가 더 작다면:
거리[v] = 새로운 거리
실제 구현에서는 가장 가까운 정점을 빠르게 찾기 위해 보통 우선순위 큐를 사용합니다.
정점의 개수를 V, 간선의 개수를 E라고 하면:
O(V²)O((V + E) log V)일반적으로 그래프가 크다면 우선순위 큐를 사용하는 방법이 효율적입니다.
다익스트라 알고리즘은 간선의 가중치가 음수이면 사용할 수 없습니다.
예를 들어 다음과 같은 간선이 있다면:
A → B의 비용 = -3
다익스트라 알고리즘 대신 벨만-포드 알고리즘을 사용해야 합니다.
다익스트라 알고리즘은 현재 가장 가까운 정점을 차례로 확정하면서, 그 정점을 거치는 더 짧은 경로가 있는지 확인하는 최단 경로 알고리즘입니다.
| 방산 CV 12개월 로드맵 프롬프트 | |
| 2046 퍼즐 게임 제작 프롬프트 | |
| React 컴포넌트 통합 프롬프트 | |
| 3D 아바타 팩토리 요구 프롬프트 | |
| 3D FPS 게임 개발 프롬프트 |