practivceAlgorithm/백준

[백준][Python] 15900 나무탈출

findTheValue 2021. 9. 2. 00:05

리프노드부터 거리 합이 홀수면 승 짝수면 패.

근데 이거 좀 너무한게 변수명을 다 저렇게 줄여야 통과됨..

아니면 시간초과

 

import sys
input = sys.stdin.readline
from collections import deque,defaultdict


# 왜? BFS로 안풀림?
def BFS(start):
    q = deque()
    q.append([start,0])
    vi[start] = True
    a = 0
    while q:
        c_n,d = q.popleft()
        for n_n in g[c_n]:
            if not vi[n_n]:
                vi[n_n]=True
                q.append([n_n,d+1])
                if len(g[n_n])==1:
                    a += d+1
    return a

N = int(input())
g = defaultdict(list)
vi = {i: False for i in range(1,N+1)}
for _ in range(N-1):
    a, b = map(int, input().split())
    g[a] += [b]
    g[b] += [a]

print("Yes" if BFS(1)&1 else "No")