1. 문제
https://www.acmicpc.net/submit/1068/63887458
로그인
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# 입력 코드
# n : 노드의 개수
n = int(input())
# node : 입력받은 노드
node = list(map(int, input().split()))
# removeNode : 제거할 노드
removeNode = int(input())
# 노드 제거 코드 : 제거 대상 노드와 그 하위 노드의 값을 -2로 변경
def node_remove(deleteNode):
global node
global n
node[deleteNode] = -2
for i in range(n):
if node[i] == deleteNode:
node_remove(i)
node_remove(removeNode)
# 리프 노드 카운트 코드 : 값이 -2가 아니면서 자식이 없는 노드의 수를 카운트
cnt = 0
for i in range(n):
if node[i] != -2:
if i not in node:
cnt += 1
print(cnt)
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 최소비용 구하기(1916) (0) | 2023.07.31 |
---|---|
(Python)백준 코딩테스트 연습 - 토마토(7569) (0) | 2023.07.28 |
(Python)백준 코딩테스트 연습 - 평범한 배낭(12865) (0) | 2023.07.16 |
(Python)백준 코딩테스트 연습 - 토마토(7576) (0) | 2023.07.15 |
(Python)백준 코딩테스트 연습 - 숨바꼭질 3(13549) (0) | 2023.07.12 |