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

공식 모음, 모든 주제의 핵심 풀이 단계, 연습 문제 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.알고리즘과 복잡도보통

점화식 T(n) = 2T(n/2) + O(1)의 해는 무엇입니까?

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

한 번 증가할 때 많은 비트가 뒤집힐 수 있다는 점을 고려할 때, 이진 카운터 증가의 분할 상환 비용은 얼마입니까?

  1. A증가당 O(n log n)
  2. B증가당 O(1)
  3. C증가당 O(log n)
  4. D증가당 O(n)
3.자료구조보통

큐를 스택 두 개로 구현합니다. "in" 스택에 push하고 "out" 스택에서 pop하며, "out"이 비면 "in"에서 다시 채웁니다. 연산당 분할 상환 비용은 얼마입니까?

  1. AO(log n)
  2. BO(1)
  3. CO(n)
  4. DO(n²)
4.자료구조어려움

어떤 객체를 해시 맵의 키로 저장한 뒤, 그 해시 함수가 사용하는 필드를 바꿉니다. 예상되는 결과는 무엇입니까?

  1. A객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다
  2. B맵이 자동으로 키를 새 버킷으로 옮긴다
  3. C키의 해시는 프로그램이 시작될 때 한 번만 계산되므로 아무것도 바뀌지 않는다
  4. D필드가 바뀌는 순간 맵이 오류를 던진다
5.그래프 이론보통

트리에 차수가 4인 정점 3개이(가) 있고 나머지 정점은 모두 잎(차수 1)이다. 잎은 몇 개(L)인가?

3 × deg 4
L =
6.그래프 이론어려움
ABCDEF

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

M = 인접 행렬L = 3
N =

3용액

1.알고리즘과 복잡도

답: A · O(n)

이것이 답인 이유

마스터 정리에 따라 nlog₂ 2 = n이 상수 작업을 지배하므로, 절반으로 나누어 최댓값을 찾을 때처럼 T(n) = Θ(n)입니다.

답

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

답: B · 증가당 O(1)

이것이 답인 이유

n번 증가하는 동안 비트 i는 약 n / 2ⁱ번 뒤집히므로 전체는 2n번 미만이고, 평균은 각각 O(1)입니다.

답

B · 증가당 O(1)
3.자료구조

답: B · O(1)

이것이 답인 이유

각 원소는 모두 합쳐 최대 두 번 push되고 pop되므로, 한 번의 다시 채우기가 O(n)이 걸릴 수 있더라도 연산 순서 전체의 평균은 O(1)입니다.

답

B · O(1)
4.자료구조

답: A · 객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다

이것이 답인 이유

키의 위치는 이전 해시로 정해졌습니다. 새 해시로는 조회가 잘못된 버킷을 찾으므로 키는 불변이어야 합니다.

답

A · 객체가 이전 해시의 버킷에 있으므로 조회가 실패할 수 있다
5.그래프 이론

답: L = 8

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

트리에 대한 악수 보조정리

L + 12 = 2(L + 3) − 2
L = 8

답

L = 8

지름길: 차수 d ≥ 3인 정점에 대해 L = 2 + Σ (d − 2).

6.그래프 이론

답: N = 6

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

인접 행렬

A: 0 1 0 0 0 0
B: 1 0 1 1 1 0
C: 0 1 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 = 1·0 + 2·1 + 1·1 + 2·1 + 4·0 + 1·1 = 6

답

N = 6

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