# 풀이
- 입력 범위가 애초에 N이 100,000이기 때문에 DFS나 BFS로 풀 생각은 하면 안됐다
- 단절선이 생기면 반드시 그래프가 2개 이상으로 쪼개진다.
- 간선이 하나밖에 없는 노드가 단절점이다.
import Foundation
let N = Int(readLine()!)!
var adj: [[Int]] = .init(repeating: [], count: N+1)
var edges: [(Int, Int)] = []
for _ in 0..<N-1 {
let edge = readLine()!.split(separator: " ").map { Int($0)! }
adj[edge[0]].append(edge[1])
adj[edge[1]].append(edge[0])
edges.append((edge[0], edge[1]))
}
let q = Int(readLine()!)!
for _ in 0..<q {
let tk = readLine()!.split(separator: " ").map { Int($0)! }; let t = tk[0]; let k = tk[1]
if t == 1 {
// k 단절점 체크
// dfs하다가 단절점
if adj[k].count >= 2 {
print("yes")
} else {
print("no")
}
} else if t == 2 {
// k번쩌 간선이 단절선
print("yes")
}
}