자료구조와 알고리즘: 벼락치기 팩

공식 모음, 모든 주제의 핵심 풀이 단계, 연습 문제 6개가 들어 있으며 전체 풀이는 맨 뒤에 있습니다.

새 문제강의로 돌아가기

인쇄 창에서 “PDF로 저장”을 선택하면 기기에 사본을 보관할 수 있습니다.

1공식과 풀이 방법

그래프 이론

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

2연습 문제

1.알고리즘과 복잡도보통

퀵 정렬의 최악의 경우 시간 복잡도는 무엇입니까?

  1. AO(n)
  2. BO(n log n)
  3. CO(n²)
  4. DO(log n)
2.알고리즘과 복잡도어려움

마스터 정리를 사용하면 T(n) = 8T(n/2) + O(n²)의 해는 무엇입니까?

  1. AΘ(n²)
  2. BΘ(n³)
  3. CΘ(n log n)
  4. DΘ(n² log n)
3.자료구조보통

실행 중인 프로그램이 활성 함수 호출과 그 지역 변수를 추적하는 데 사용하는 자료 구조는 무엇입니까?

  1. A프레임들의 이진 탐색 트리
  2. B호출 스택(call stack)
  3. C함수들의 해시 테이블
  4. D힙 메모리 큐
4.자료구조어려움

랭크에 의한 합집합(union by rank)이나 경로 압축 없이, 원소가 n개인 union-find 구조에서 find 한 번의 최악의 경우 비용은 얼마입니까?

  1. AO(1)
  2. BO(n)
  3. CO(log n)
  4. DO(α(n))
5.그래프 이론보통

연결 그래프의 정점이 17개이고 간선이 24개이다. 신장 트리가 남도록 제거해야 하는 간선은 몇 개(k)인가?

|V| = 17|E| = 24
k =
6.그래프 이론어려움
ABCDE

C에서 B까지 가는 길이 3의 보행은 몇 개인가? 보행에서는 정점과 간선이 반복될 수 있다. 그 수를 N(이)라 하자.

M = 인접 행렬L = 3
N =

3용액

1.알고리즘과 복잡도

답: C · O(n²)

이것이 답인 이유

피벗을 계속 나쁘게 선택하면(예: 이미 정렬된 입력에서 첫 번째 원소를 피벗으로 선택) 분할이 불균형해져 O(n²)이 됩니다. 평균적인 경우는 O(n log n)입니다.

답

C · O(n²)
2.알고리즘과 복잡도

답: B · Θ(n³)

이것이 답인 이유

log₂ 8 = 3이고 n²은 n³보다 느리게 증가하므로 리프가 지배합니다: Θ(n³).

답

B · Θ(n³)
3.자료구조

답: B · 호출 스택(call stack)

이것이 답인 이유

각 호출은 스택 프레임을 push하고 각 반환은 그것을 pop하므로, 가장 최근의 호출이 먼저 끝납니다.

답

B · 호출 스택(call stack)
4.자료구조

답: B · O(n)

이것이 답인 이유

단순한 합집합은 트리를 긴 사슬로 연결할 수 있으므로 find가 부모 포인터 n − 1개를 따라가야 할 수 있습니다. 두 휴리스틱을 쓰면 거의 상수에 가까워집니다.

답

B · O(n)
5.그래프 이론

답: k = 8

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

신장 트리의 간선

17 − 1 = 16

제거할 간선

k = 24 − 16 = 8

답

k = 8
6.그래프 이론

답: N = 6

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

인접 행렬

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

한 걸음 더

(M³)CB = 1·1 + 2·0 + 3·1 + 1·1 + 1·1 = 6

답

N = 6

ExamProblems · examproblems.com/courses/data-structures-and-algorithms