Skip to content

Commit 3437a38

Browse files
author
hangyeol
committed
116차 1번 문제풀이
1 parent 3d1f12b commit 3437a38

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import sys
2+
sys.setrecursionlimit(10**6)
3+
4+
def main():
5+
input = sys.stdin.readline
6+
T = int(input())
7+
8+
for _ in range(T):
9+
N = int(input())
10+
parent = [0] * (N+1)
11+
depth = [0] * (N+1)
12+
tree = [[] for _ in range(N+1)]
13+
isChild = [False] * (N+1)
14+
for _ in range(N-1):
15+
a, b = map(int, input().split())
16+
parent[b] = a
17+
tree[a].append(b)
18+
isChild[b] = True
19+
20+
root = 0
21+
for i in range(1, N+1):
22+
if not isChild[i]:
23+
root = i
24+
break
25+
26+
def dfs(node, d):
27+
depth[node] = d
28+
for child in tree[node]:
29+
dfs(child, d + 1)
30+
31+
dfs(root, 0)
32+
33+
a, b = map(int, input().split())
34+
35+
while depth[a] > depth[b]:
36+
a = parent[a]
37+
while depth[a] < depth[b]:
38+
b = parent[b]
39+
40+
while a != b:
41+
a = parent[a]
42+
b = parent[b]
43+
44+
print(a)
45+
46+
if __name__ == '__main__':
47+
main()

0 commit comments

Comments
 (0)