BOJ1068 트리
blog.encrypted.gg/130 의 도움을 받아 풀 수 있었습니다.
from collections import deque
import sys
N = int(input())
parent = list(map(int, input().split()))
sibling = [[] for _ in range(N+1)]
root = -1
for i in range(N):
if parent[i] == -1:
root = i
else:
sibling[parent[i]].append(i)
del_node = int(input())
if del_node == root:
print(0)
sys.exit()
Q = deque()
Q.append(root)
cnt = 0
while Q:
cur = Q.popleft()
if len(sibling[cur]) == 0 or (len(sibling[cur]) == 1 and sibling[cur][0] == del_node):
cnt += 1
for next in sibling[cur]:
if next != del_node:
Q.append(next)
print(cnt)
Author And Source
이 문제에 관하여(BOJ1068 트리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@randi65535/BOJ1068저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)