Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 객체 지향 설계와 스프링
- 20055
- 13460 구슬탈출 2
- 코틀린
- Kotlin in action 10장
- 스프링 핵심 원리
- Kotlin in action 6장
- 스프링 컨테이너와 스프링 빈
- 기능개발 python
- KotlinInAction
- 백준 20055 컨베이어 벨트 위의 로봇
- 코틀린인액션
- 스프링 핵심 원리 이해
- 고급매핑
- kotlin in action 정리
- Kotlin in action 5장
- 스프링 핵심 원리 - 기본편
- 백준 13460 Python
- Kotlin In Action
- 코틸린인액션
- 7장 고급매핑
- Python
- Kotlin in action 3장
- 자바 ORM 표준 JPA 프로그래밍 7장
- 컨베이어 벨트 위의 로봇 Python
- Kotlin
- 20055 컨베이어 벨트 위의 로봇
- 싱글톤 컨테이너
- 백준
- spring
Archives
- Today
- Total
기록하는 습관
[백준] 1068 트리 본문
문제
코드
N = int(input())
parents = list(map(int, input().split()))
delete = int(input())
def dfs(delete_node, arr): # delete_node를 부모로 갖는 원소 삭제
parents[delete_node] = -2
for i in range(len(parents)):
if delete_node == parents[i]:
dfs(i, parents)
def main():
dfs(delete, parents)
count = 0
for i in range(len(parents)): # leaf node 개수 세기
if parents[i] != -2 and i not in parents:
count += 1
print(count)
main()
풀이
- parents 배열에서 delete_node를 부모로 갖는 원소를 삭제한다.
- parents 배열을 처음부터 끝까지 탐색하며 delete_node가 부모 노드인 인덱스를 찾아 다시 dfs를 재귀호출한다.
- dfs 함수 호출이 끝나면, 삭제된 노드들은 모두 -2로 변경되어있으므로 노드가 부모 배열에서 삭제된 노드도 아니고, 다른 노드의 부모 노드도 아니면 count ++ 해주기.
'알고리즘 > [문제풀이] 백준' 카테고리의 다른 글
[백준] 16932 모양 만들기 (0) | 2021.06.12 |
---|---|
[백준] 2178 미로 탐색 (Python, BFS) (0) | 2021.06.06 |
[백준] 9934 완전 이진 트리 (0) | 2021.05.30 |
[백준] 14425 문자열 집합 (0) | 2021.05.23 |
[백준] 11279 최대 힙 (0) | 2021.05.23 |
Comments