[백준]1068번 트리 - ptyhon파이썬

2024. 10. 16. 17:57·코딩테스트/백준

문제

 

 

이 문제를 보면 dfs로 풀어야한다는 감이 온다 왜냐하면 삭제해야하는 노드의 끝까지 방문해서 차례대로 삭제를 해주어야 하기 때문이다.

 

이때 삭제를 실제로 하게 되면은 인덱스 번호를 수정해야 해서 복잡해지므로 삭제를 해야할 노드의 값을 변경해주는 방식으로 업데이트를 해주었다.

 

실제 코드

from collections import deque
n = int(input())
nodes = list(map(int, input().split()))
d = int(input())

def dfs(d):
    nodes[d] = -10
    for i in range(n):
        #d번 노드를 부모로 가진 자식노드 재귀통해 삭제
        if d == nodes[i]:
            
            dfs(i)
            

dfs(d)
ans =0 
for i in range(n):
    #-10은 제거된노드를 의미, nodes에 없다는 건 자식노드를 가지지 않는다는걸 의미
    if nodes[i] != -10 and i not in nodes:
        ans+=1

print(ans)

 

 

dfs로 푸는 거라는 감은 쉽게 왔는데 문제를 해결하는 방법이 쉽게 생각이 안났던 문제였다.... dfs를 많이 연습해봐야 할 것 같다

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 16928번 뱀과 사다리게임 -python 파이썬  (3) 2024.10.22
[백준]2096번 내려가기 - python 파이썬 feat.메모리초과 오류 해결  (1) 2024.10.17
[백준] 2565번 전깃줄 - python 파이썬  (1) 2024.10.14
[백준]14891번 톱니바퀴 -python 파이썬  (2) 2024.10.12
[백준] 2294번 동전2 -python 파이썬  (1) 2024.10.12
'코딩테스트/백준' 카테고리의 다른 글
  • [백준] 16928번 뱀과 사다리게임 -python 파이썬
  • [백준]2096번 내려가기 - python 파이썬 feat.메모리초과 오류 해결
  • [백준] 2565번 전깃줄 - python 파이썬
  • [백준]14891번 톱니바퀴 -python 파이썬
hiwon
hiwon
천천히 굴러가는 코딩일기
  • hiwon
    하이원의 코딩 일기
    hiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • 프론트엔드 (0)
        • react (0)
      • 백엔드 (13)
        • node.js (1)
        • spring (6)
      • 코딩테스트 (57)
        • 백준 (41)
        • 프로그래머스 (15)
      • 프로디지털아카데미 (9)
        • 클라우드 (1)
        • JavaScript (1)
      • github (1)
      • AWS (2)
      • Infra (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    신한투자증권
    EC2
    kdt교육
    알파코
    그리디
    프로그래머스
    다익스트라
    bastion host
    깃허브
    K디지털트레이닝
    투포인터
    파이썬
    Java
    프로디지털아카데미
    AWS
    python
    알파코캠퍼스
    알고리즘
    백트래킹
    IT기획
    백준
    프디아
    MSA
    UnionFind
    spring
    백엔드
    코딩테스트
    BFS
    코테
    github
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hiwon
[백준]1068번 트리 - ptyhon파이썬
상단으로

티스토리툴바