Skip to content

Commit 07837c1

Browse files
committed
[BOJ] #15681. 트리와 쿼리 / 골드5 / 60분 / 힌트, 성공
1 parent 56e2d8b commit 07837c1

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import sys
2+
input = sys.stdin.readline
3+
sys.setrecursionlimit(10**6) # 재귀 깊이 제한 설정(10만)
4+
5+
# 1. 입력 처리
6+
N, R, Q = map(int, input().split()) # 정점 수, 루트 번호, 쿼리 수
7+
graph = [[] for _ in range(N + 1)] # 트리 그래프
8+
9+
# 2. 트리 정보 입력
10+
for _ in range(N - 1):
11+
u, v = map(int, input().split())
12+
graph[u].append(v)
13+
graph[v].append(u)
14+
15+
# 3. 서브트리 크기 기록 배열
16+
size = [0] * (N + 1)
17+
18+
# 4. DFS를 이용한 서브트리 크기 계산
19+
def countSubtreeNodes(current):
20+
size[current] = 1 # 자기 자신 포함
21+
for node in graph[current]:
22+
if size[node] == 0: # 아직 방문하지 않은 경우
23+
countSubtreeNodes(node)
24+
size[current] += size[node] # 자식 서브트리 크기 추가
25+
26+
# 5. 루트에서 시작해 서브트리 크기 계산
27+
countSubtreeNodes(R)
28+
29+
# 6. 쿼리 처리
30+
for _ in range(Q):
31+
U = int(input())
32+
print(size[U])

0 commit comments

Comments
 (0)