어읽로꾸거
BOJ 1068 트리 본문
백준 1068 링크
https://www.acmicpc.net/problem/1068
문제 풀이
python 으로 풀었습니다. 끔찍한 실력
map[시작노드] 에 (도착노드)를 append 시켜주고 삭제될 노드를 입력 받은 후에 다시 삭제될 노드인 도착노드들을 다 없애줍니다.
dfs로 탐색을 할 수 있도록 find() 함수로 탐색을 시작합니다.
만약 루트 노드가 삭제됬다면 탐색을 하지 않고 끝냅니다.
코드
def find(x):
global count
if len(map[x]) == 0:
count=count+1
else:
for i in map[x]:
find(i)
count = 0;
n = int(input())
l = list(map(int,input().split()))
map = [[]for _ in range(52)]
for _ in range(0, n):
if(l[_] == -1):
start = _
else:
map[l[_]].append(_)
t = int(input())
for i in range(n):
if t in map[i]:
map[i].remove(t)
if start != t:
find(start)
print(count)
'알고리즘' 카테고리의 다른 글
BOJ 1743 음식물 피하기 (0) | 2019.04.11 |
---|---|
BOJ 1162 도로포장 (0) | 2019.04.10 |
BOJ 16785 ソーシャルゲーム (0) | 2019.04.07 |
BOJ 5397 키로거 (0) | 2019.04.05 |
BOJ 5558 チーズ (0) | 2019.04.05 |