백준 : 트리 - 1068

2025. 9. 29. 00:55·알고리즘
반응형

 

입력

첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다. 셋째 줄에는 지울 노드의 번호가 주어진다.

출력

첫째 줄에 입력으로 주어진 트리에서 입력으로 주어진 노드를 지웠을 때, 리프 노드의 개수를 출력한다.

예제 입력 1 

5
-1 0 0 1 1
2

예제 출력 1 

2

예제 입력 2 

5
-1 0 0 1 1
1

예제 출력 2 

1

예제 입력 3 

5
-1 0 0 1 1
0

예제 출력 3 

0

예제 입력 4 

9
-1 0 0 2 2 4 4 6 6
4

예제 출력 4 

2

 

여기서 DFS로 접근하여 문제를 풀었다. 이 문제의 핵심으로는 특정 노드와 그 자식 노드 전체를 삭제해야 하기 때문에 DFS는 한 노드에서시작해 재귀적으로 모든 자식 노드를 깊이 우선으로 방문하여 삭제하는 로직을 구현하기에 매우 자연스럽기 때문이다. 또한 그래프 깊이가 길지도 않았고 최단거리도 아니기 때문에 DFS로 필요하지 않는 부분이라면 재귀로 삭제하는 방식이 더 좋지 않을까 생각했다.

 

 

import sys
input = sys.stdin.readline

n = int(input().strip())
tree = list(map(int, input().split()))
delete = int(input())

def dfs(del_node):
    tree[del_node] = -1000
    for i in range(n):
        if del_node == tree[i]:
            dfs(i)
dfs(delete)
cnt = 0
is_parent = set(tree)

for i in range(n):
    if tree[i] != -2 and i not in is_parent:
        cnt += 1
print(cnt)

 

참고 : https://hstory0208.tistory.com/entry/Python%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B0%B1%EC%A4%80-1068-%ED%8A%B8%EB%A6%AC 

반응형

'알고리즘' 카테고리의 다른 글

백준 : 미로 탐색 - 2178  (0) 2025.10.02
백준 : 특정 거리의 도시 찾기 - 18352  (0) 2025.10.01
백준 : 다리 놓기 - 1010  (0) 2025.09.29
백준 : 유기농 배추 - 1012  (0) 2025.09.27
백준 : 바이러스 - 2606  (0) 2025.09.26
'알고리즘' 카테고리의 다른 글
  • 백준 : 미로 탐색 - 2178
  • 백준 : 특정 거리의 도시 찾기 - 18352
  • 백준 : 다리 놓기 - 1010
  • 백준 : 유기농 배추 - 1012
Feel나는 대로 GI록하는 글
Feel나는 대로 GI록하는 글
세상을 위한 개발자가 되기 위하여
    반응형
  • Feel나는 대로 GI록하는 글
    FeelGI
    Feel나는 대로 GI록하는 글
  • 전체
    오늘
    어제
    • 분류 전체보기 (58)
      • ML & AI (3)
        • 논문 리뷰 (1)
        • Computer Vision (0)
        • Digital Image Processing (1)
      • 알고리즘 (46)
      • 프로그램(대회,공모전,프로그램) (2)
      • 도서 (0)
      • 필기록 (1)
        • 회고록 (0)
        • 끄적끄적 (1)
      • 취업 준비 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준 토마토
    코딩테스트
    #코드트리 #코딩테스트 #코테공부 #코테준비 #알고리즘공부 #갭체크
    백준 토마토 7576
    백준
    동적계획
    코테
    28702
    알고리즘
    FizzBuzz
    ICT 학점연계 프로젝트 인턴십
    LG Aimers
    DP #알고리즘 #백준 #Python
    파이토치
    IT대학생
    구현 #문자열 #백준 #python
    스택 수열
    LG AI
    파이썬
    14761
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Feel나는 대로 GI록하는 글
백준 : 트리 - 1068
상단으로

티스토리툴바