그래프 이론: 단계별 풀이가 있는 연습 문제

그림, 힌트, 자세한 풀이가 있는 무료 그래프 이론 연습 문제. 매번 새로운 값으로, 세 가지 난이도: 차수와 간선, 오일러 경로와 트리, 최단 경로와 신장 트리.

무료 연습 문제쉬움

트리의 정점이 12개이다. 간선은 몇 개(|E|)인가?

|V| = 12

정확한 답: 정수, 반올림하지 않음.

다음 문제 →
그래프 이론 무료로 연습하기지금 그래프 이론 연습하기매일 무료 문제 5개. 카드 등록이 필요 없습니다.

연습 내용

  1. 쉬움차수와 간선
  2. 보통오일러 경로와 트리
  3. 어려움최단 경로와 신장 트리

그래프 이론 문제 푸는 방법

  1. 모든 정점의 차수를 적으세요. 차수의 합은 간선 수의 두 배입니다.
  2. 오일러 문제에서는 그래프가 연결되어 있는지 확인하고 차수가 홀수인 정점의 수를 세세요.
  3. 트리에서는 간선이 n − 1개라는 사실과 악수 보조정리를 사용하세요.
  4. 다익스트라에서는 임시 거리 표를 만들고, 매 단계마다 확정되지 않은 정점 중 거리가 가장 작은 정점을 확정하세요.
  5. 최소 신장 트리는 간선을 가중치 순으로 정렬해 사이클을 만드는 간선을 건너뛰거나(크루스칼), 시작 정점에서 트리 하나를 키워 가세요(프림).

흔한 실수

  • 차수의 합을 2로 나누는 것을 잊는 것.
  • 연결성을 확인하지 않고 오일러 그래프라고 하는 것.
  • 거리가 가장 작아지기 전에 다익스트라에서 정점을 확정하는 것.
  • 사이클을 확인하지 않고 가장 가벼운 간선을 고르는 것.
  • Kn의 해밀턴 회로 수를 (n − 1)!/2가 아니라 n!로 세는 것.

핵심 공식

악수 보조정리
Σ deg(v) = 2|E|
완전그래프
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
정규그래프
|E| = n·k/2
트리와 포리스트
|E| = n − 1, |E| = n − c
트리의 잎
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
오일러
회로: 모든 차수가 짝수; 경로: 차수가 홀수인 정점이 정확히 2개
Kn의 해밀턴 회로
(n − 1)!/2
다익스트라 갱신
d(v) = min(d(v), d(u) + w(u, v))
길이 L의 보행
(Mᴸ)ij

그래프 이론 처음부터 배우기

먼저 알아 둘 것: 집합, 관계, 함수

1정점, 간선, 차수

그래프는 정점(점)과 간선(두 정점을 잇는 선)으로 이루어집니다. 단순 그래프에는 루프도 다중 간선도 없습니다.

정점의 차수는 그 정점에 닿는 간선의 수입니다. 모든 간선은 양 끝이 있으므로 각 끝점의 차수에 1씩 더합니다. 이로부터 악수 보조정리가 나옵니다.

Σ deg(v) = 2·|E|

두 가지 결과: 차수의 합은 항상 짝수이고, 차수가 홀수인 정점의 수도 짝수입니다.

  • 완전그래프 Kn은 모든 쌍을 잇습니다: 간선 n(n − 1)/2개.
  • 완전 이분그래프 Km,n은 한쪽의 모든 정점을 반대쪽의 모든 정점과 잇습니다: 간선 m·n개.
  • 정점이 n개인 k-정규그래프의 간선은 n·k/2개입니다.

인접 행렬은 i와 j가 이어져 있으면 (i, j)에 1을 둡니다. 무방향 그래프에서는 대칭이고, 행의 합이 차수이며, Mᴸ의 (i, j) 성분은 i에서 j까지 길이 L인 보행의 수입니다.

자가 점검 그래프의 차수가 3, 3, 2, 2, 2이다. 간선은 몇 개인가?
  1. 10
  2. 12
  3. 5
  4. 6

답: 6. 차수의 합은 12이고 모든 간선이 두 번 세어지므로 간선은 12/2 = 6개입니다. 5는 정점의 수입니다.

2오일러와 해밀턴

오일러 회로는 모든 간선을 정확히 한 번씩 지나 출발점으로 돌아옵니다. 오일러 경로는 모든 간선을 한 번씩 지나지만 다른 곳에서 끝날 수 있습니다. 연결 그래프에서는 다음이 성립합니다.

  • 모든 차수가 짝수: 오일러 회로가 있습니다.
  • 차수가 홀수인 정점이 정확히 두 개: 한 홀수 정점에서 다른 홀수 정점까지 오일러 경로가 있습니다.
  • 차수가 홀수인 정점이 두 개보다 많음: 둘 다 없습니다.

해밀턴 회로는 모든 정점을 정확히 한 번씩 방문합니다. 이를 판별하는 간단한 차수 검사는 없습니다. Kn에는 서로 다른 해밀턴 회로가 (n − 1)!/2개 있습니다. 시작점을 고정하고, 나머지 n − 1개 정점을 나열한 뒤, 두 방향이므로 2로 나눕니다.

자가 점검 연결 그래프의 차수가 2, 3, 4, 3, 2이다. 무엇이 있는가?
  1. 둘 다 없다
  2. 오일러 경로는 있지만 오일러 회로는 없다
  3. 오일러 회로
  4. 오일러 회로와 회로가 아닌 오일러 경로가 모두 있다

답: 오일러 경로는 있지만 오일러 회로는 없다. 차수가 홀수인 정점이 정확히 두 개(두 개의 3)이므로 둘 사이에 오일러 경로는 있지만 회로는 없습니다.

3트리

트리는 사이클이 없는 연결 그래프입니다. 정점이 n개인 모든 트리는 정확히 n − 1개의 간선을 가집니다. 간선을 어느 것이든 추가하면 사이클이 생기고, 어느 것이든 제거하면 연결이 끊어집니다.

정점이 n개인 트리 c개로 이루어진 포리스트는 간선이 n − c개입니다. 간선이 m개인 연결 그래프는 m − n + 1개의 간선을 제거한 뒤에도 신장 트리를 유지합니다.

악수 보조정리로 잎의 수를 셉니다: Σ deg = 2(n − 1). 간단한 형태는 차수 d ≥ 3인 정점에 대한 L = 2 + Σ (d − 2)입니다. 차수 3인 정점이 두 개이고 나머지가 잎인 트리는 잎이 2 + 1 + 1 = 4개입니다.

4다익스트라와 최소 신장 트리

다익스트라 알고리즘은 가중치가 음이 아닌 그래프에서 시작 정점으로부터의 최단 거리를 구합니다.

  1. 시작 거리를 0으로, 다른 모든 정점을 ∞로 둡니다.
  2. 확정되지 않은 정점 중 거리가 가장 작은 정점을 확정합니다. 그 거리는 이제 최종 값입니다.
  3. 각 이웃 v에 대해 d(v) = min(d(v), d(u) + w(u, v))로 갱신합니다.
  4. 목표 정점이 확정될 때까지 반복합니다.

최소 신장 트리는 총 가중치가 가장 작게 모든 정점을 연결합니다. 크루스칼은 간선을 가벼운 것부터 무거운 것 순으로 정렬해 사이클을 만들지 않는 간선을 차례로 고릅니다. 프림은 시작 정점에서 트리 하나를 키우며 트리에서 뻗어 나가는 가장 가벼운 간선을 항상 추가합니다. 둘 다 간선 n − 1개에서 멈춥니다.

풀이 예제

아래 그래프에서 A에서 E까지의 최단 거리를 구하시오.

1

시작

412581ABCDE

d(A) = 0. 이웃은 d(B) = 4, d(C) = 1이 됩니다.

2

C 확정 (1)

C를 거치면: d(B) = min(4, 1 + 2) = 3이고 d(E) = 1 + 8 = 9입니다.

3

B 확정 (3)

B를 거치면: d(D) = 3 + 5 = 8입니다.

4

D 확정 (8)

D를 거치면: d(E) = min(9, 8 + 1) = 9. 개선되지 않으며 같은 값입니다.

5

E 확정 (9)

E가 확정되었습니다. 그 거리는 최종 값입니다.

답

최단 거리는 A → C → E를 따르는 d(E) = 9입니다. A → C → B → D → E 경로도 길이가 1 + 2 + 5 + 1 = 9로 같습니다.

자가 점검 크루스칼 알고리즘이 가중치 1, 2, 3인 간선을 골랐다. 그다음으로 가벼운 가중치 4의 간선은 이미 연결된 두 정점을 잇는다. 어떻게 되는가?
  1. 남은 것 중 가장 가벼우므로 선택한다
  2. 대신 가중치 3의 간선이 제거된다
  3. 사이클을 만들게 되므로 건너뛴다
  4. 알고리즘이 멈춘다

답: 사이클을 만들게 되므로 건너뛴다. 크루스칼은 사이클을 절대 만들지 않습니다. 같은 성분에 속한 두 정점 사이의 간선은 건너뛰고 다음 간선으로 넘어갑니다.

5흔한 실수

  • 간선의 수를 구하려고 차수의 합을 2로 나누는 것을 잊는 것.
  • 그래프가 연결되어 있는지 확인하지 않고 오일러 회로를 판단하는 것.
  • 임시 거리가 가장 작아지기 전에 다익스트라에서 정점을 확정하는 것.
  • 사이클을 확인하지 않고 가장 가벼운 간선 n − 1개를 고르는 것.
  • Kn의 해밀턴 회로 수를 (n − 1)!/2가 아니라 n!로 세는 것.

6시험 문제의 유형

  • 쉬움: 차수와 간선. 악수 보조정리를 사용하고, Kn, Km,n, 정규그래프, 트리의 간선 수를 세고, 인접 행렬을 읽거나, 주어진 차수를 가진 정점을 클릭합니다.
  • 보통: 오일러 경로와 트리. 그래프에 오일러 회로나 경로가 있는지 판단하고, 트리의 잎을 세고, 신장 트리를 위해 제거할 간선 수를 세고, Kn의 해밀턴 회로를 셉니다.
  • 어려움: 최단 경로와 신장 트리. 다익스트라 알고리즘을 실행하고, 주어진 단계에서 확정되는 정점을 찾고, 최소 신장 트리의 가중치를 구하고, 크루스칼이나 프림이 다음에 추가하는 간선을 클릭하고, 인접 행렬로 보행의 수를 셉니다.

앱에서 단계별로 배우기앱에서 단계별로 배우기

예제 풀이

예제 1쉬움
AABBCCDDEE0010000001100010000101110

단순 무방향 그래프의 인접 행렬이 주어져 있다. 그래프의 간선은 몇 개(|E|)인가?

구하는 값: |E|

힌트 보기
  1. i와 j가 간선으로 이어져 있으면 성분 (i, j)는 1입니다.
  2. 각 간선 {i, j}는 (i, j)와 (j, i)에 1을 두 개 줍니다.
  3. 행렬에는 1이 8개 있습니다.
정답과 단계별 풀이 보기

차수: 정점의 차수는 그 정점에 닿는 간선의 수입니다. 모든 간선은 양 끝이 있으므로 차수의 합은 간선 수의 두 배입니다: Σ deg(v) = 2|E|(악수 보조정리). 따라서 차수가 홀수인 정점의 수는 짝수입니다. Kn은 간선이 n(n − 1)/2개이고, 정점이 n개인 k-정규그래프는 nk/2개이며, 정점이 n개인 트리는 간선이 n − 1개입니다.

1 세기

행의 합: 1 + 1 + 2 + 1 + 3 = 8
|E| = 8/2 = 4

답

|E| = 4
예제 2보통
ABCDEFG오일러 회로오일러 경로, 회로 없음둘 다 아님

연결 그래프에 오일러 회로가 있는가, 회로가 아닌 오일러 경로가 있는가, 둘 다 없는가? 답을 클릭하세요.

|V| = 7|E| = 10
  1. 1오일러 회로
  2. 2오일러 경로, 회로 없음
  3. 3둘 다 아님
힌트 보기
  1. 오일러 정리는 정점의 차수만 있으면 됩니다(그래프가 연결되어 있을 때).
  2. 모든 차수가 짝수: 오일러 회로. 차수가 홀수인 정점이 정확히 두 개: 그 사이에 오일러 경로. 그보다 많으면 둘 다 없음.
  3. 차수가 홀수인 정점을 세세요.
정답과 설명 보기

오일러, 해밀턴, 트리: 연결 그래프는 모든 정점의 차수가 짝수이면 오일러 회로(모든 간선을 한 번씩 지나 출발점으로 돌아옴)를 가지고, 차수가 홀수인 정점이 정확히 두 개이면 회로가 아닌 오일러 경로를 가집니다. 이 경로는 한 홀수 정점에서 다른 홀수 정점까지 이어집니다. 해밀턴 회로는 모든 정점을 한 번씩 방문하며, Kn에는 (n − 1)!/2개가 있습니다. 정점이 n개인 트리는 간선이 n − 1개이고, 간선이 m개인 연결 그래프는 m − n + 1개의 간선을 제거한 뒤에도 신장 트리를 유지합니다.

차수

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 4, deg(E) = 4, deg(F) = 2, deg(G) = 3

홀수 정점

A, G → 2
오일러 경로, 회로 없음

답

오일러 경로, 회로 없음

오일러 경로는 한 홀수 정점에서 시작해 다른 홀수 정점에서 끝납니다.

예제 3어려움
ABCDEF

E에서 출발해 같은 정점으로 돌아오는 길이 3의 닫힌 보행은 몇 개인가? 보행에서는 정점과 간선이 반복될 수 있다. 그 수를 N(이)라 하자.

M = 인접 행렬L = 3

구하는 값: N

힌트 보기
  1. 인접 행렬 M에서 i에서 j까지 길이 L인 보행의 수는 Mᴸ의 성분 (i, j)입니다.
  2. 먼저 E에서 모든 정점까지 길이 2인 보행을 세고, 한 걸음 더 가세요.
  3. E에서 길이 2인 보행: A: 2, B: 1, C: 0, D: 2, E: 4, F: 1.
정답과 단계별 풀이 보기

차수: 정점의 차수는 그 정점에 닿는 간선의 수입니다. 모든 간선은 양 끝이 있으므로 차수의 합은 간선 수의 두 배입니다: Σ deg(v) = 2|E|(악수 보조정리). 따라서 차수가 홀수인 정점의 수는 짝수입니다. Kn은 간선이 n(n − 1)/2개이고, 정점이 n개인 k-정규그래프는 nk/2개이며, 정점이 n개인 트리는 간선이 n − 1개입니다.

인접 행렬

A: 0 1 1 0 0 0
B: 1 0 0 1 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

한 걸음 더

(M³)EE = 2·0 + 1·1 + 0·1 + 2·1 + 4·0 + 1·1 = 4

답

N = 4

질문과 답변

그래프 이론: 무엇인가요?

정점의 차수는 그 정점에 닿는 간선의 수입니다. 모든 간선은 양 끝이 있으므로 각 끝점의 차수에 1씩 더합니다. 이로부터 악수 보조정리가 나옵니다.

두 가지 결과: 차수의 합은 항상 짝수이고, 차수가 홀수인 정점의 수도 짝수입니다.

그래프 이론 문제는 어떻게 단계별로 푸나요?
  1. 모든 정점의 차수를 적으세요. 차수의 합은 간선 수의 두 배입니다.
  2. 오일러 문제에서는 그래프가 연결되어 있는지 확인하고 차수가 홀수인 정점의 수를 세세요.
  3. 트리에서는 간선이 n − 1개라는 사실과 악수 보조정리를 사용하세요.
  4. 다익스트라에서는 임시 거리 표를 만들고, 매 단계마다 확정되지 않은 정점 중 거리가 가장 작은 정점을 확정하세요.
  5. 최소 신장 트리는 간선을 가중치 순으로 정렬해 사이클을 만드는 간선을 건너뛰거나(크루스칼), 시작 정점에서 트리 하나를 키워 가세요(프림).
그래프 이론에서 자주 하는 실수는?
  • 차수의 합을 2로 나누는 것을 잊는 것.
  • 연결성을 확인하지 않고 오일러 그래프라고 하는 것.
  • 거리가 가장 작아지기 전에 다익스트라에서 정점을 확정하는 것.
  • 사이클을 확인하지 않고 가장 가벼운 간선을 고르는 것.
  • Kn의 해밀턴 회로 수를 (n − 1)!/2가 아니라 n!로 세는 것.
그래프 이론 연습에서는 무엇을 다루나요?
  • 쉬움: 차수와 간선
  • 보통: 오일러 경로와 트리
  • 어려움: 최단 경로와 신장 트리

문제마다 값이 새로 바뀌므로 답이 아니라 푸는 방법을 익히게 됩니다. 막혔나요? 먼저 작은 힌트를 열고, 필요할 때만 전체 해설을 보세요.

연습 방법

  • 문제마다 값이 새로 바뀌므로 답이 아니라 푸는 방법을 익히게 됩니다.
  • 막혔나요? 먼저 작은 힌트를 열고, 필요할 때만 전체 해설을 보세요.
  • 진행 상황, 틀린 문제, 저장한 문제가 보관되므로 시험 전에 복습할 수 있습니다.

이 주제의 앞뒤 주제

먼저 배우기

이 주제가 포함된 강의

수학과 통계의 다른 주제

인쇄용 학습지

그래프 이론 무료로 연습하기지금 그래프 이론 연습하기매일 무료 문제 5개. 카드 등록이 필요 없습니다.