이 영역을 누르면 첫 페이지로 이동
자라자 블로그의 첫 페이지로 이동

자라자

페이지 맨 위로 올라가기

자라자

개발자를 준비하는 자라자의 블로그입니다.

백준 1068 트리 파이썬 풀이

  • 2022.06.23 09:18
  • PS/BOJ

정답 코드

# BOJ 1068 트리
# 2022 06 23 08:39 - 09:12

import sys
input = sys.stdin.readline

def main():
    v = int(input())
    graph = [[] for _ in range(v) ]

    connection = list(map(int,input().split()))

    root = -2
    for idx, value in enumerate(connection):
        if value == -1:
            root = idx
        else:
            graph[value].append(idx)
    deleteNode = int(input())

    if deleteNode == root :
        print(0)
        return 
    # print(graph)

    parentNode = connection[deleteNode]

    graph[parentNode].remove(deleteNode)
    graph[deleteNode]=[]

    # print(graph)

    leaf = 0
    def dfs(cur):
        nonlocal leaf
        for next in graph[cur]:
            if graph[next]:
                dfs(next)
            else:
                leaf+=1
        return

    if not graph[root]:
        print(1)
        return
    dfs(root)
    print(leaf)
# [[2], [], [], [], []]
# [[1], [3, 4], [], [], []]

main()

핵심 풀이

  1. 노드를 삭제 할 때, 부모에서 한 번, 자식노드 삭제 총 두 번 해줘야 한다.
  2. 방문배열을 따로 만들 필요가 없다.
  3. 루트를 삭제할 경우와, 하나뿐인 루트의 자식을 삭제할 경우 예외처리를 해줘야 한다.

'PS > BOJ' 카테고리의 다른 글

백준 1240번 노드 사이의 거리 파이썬 풀이  (0) 2022.06.22
백준 1039번 교환 파이썬 풀이  (0) 2022.06.08
백준 1713 후보 추천하기  (0) 2022.05.26
백준 1062 가르침 파이썬 풀이  (0) 2022.05.26
백준 1759 암호만들기 C++  (0) 2022.02.18

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 백준 1240번 노드 사이의 거리 파이썬 풀이

    백준 1240번 노드 사이의 거리 파이썬 풀이

    2022.06.22
  • 백준 1039번 교환 파이썬 풀이

    백준 1039번 교환 파이썬 풀이

    2022.06.08
  • 백준 1713 후보 추천하기

    백준 1713 후보 추천하기

    2022.05.26
  • 백준 1062 가르침 파이썬 풀이

    백준 1062 가르침 파이썬 풀이

    2022.05.26
다른 글 더 둘러보기

정보

자라자 블로그의 첫 페이지로 이동

자라자

  • 자라자의 첫 페이지로 이동

검색

메뉴

  • 🏠 HOME
  • 💡 ABOUT
  • 💻 GITHUB

카테고리

  • 분류 전체보기 (91)
    • Tech Note (3)
    • Dev Log (11)
    • Study Log (11)
    • Settings (3)
    • PS (53)
      • Programmers (21)
      • BOJ (32)
    • Diary (10)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • ㅣ
  • 리액트
  • 공식문서읽기

나의 외부 링크

정보

자라자의 자라자

자라자

자라자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 자라자. Designed by Fraccino.

티스토리툴바