PS/백준

[BOJ] 1068 트리

uyt8989 2022. 9. 30. 15:59
 

1068번: 트리

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

www.acmicpc.net

 

 상당히 문제가 간단하다. 구구절절 상황극이 있지도 않고, 문제에서 주어지는 조건도 심플하기 때문에 문제를 이해하는데에는 시간이 얼마 걸리지 않았다. 하지만 처음 풀 때 두가지 정도의 예외 사항을 놓쳐서 바로 통과를 받지는 못 했다. 첫번째 예외 사항은 지우는 노드가 루트인 경우이다. 간단히 조건문을 사용해서 처리할 수 있었다.

 

 두번째는 루트 노드 바로 밑에 붙어있는 노드를 삭제하는 경우다. 처음 구현에서는 트리 구조에서 따로 노드를 삭제해주지는 않고 BFS 과정에서 검사를 진행했다. 그러다보니 루트 바로 밑에서 문제가 발생하는 경우가 있었다. 리스트에서 노드를 아예 삭제해주는 것으로 문제를 해결했다.

 

 

'PS > 백준' 카테고리의 다른 글

[BOJ] 1715 카드 정렬하기  (0) 2022.09.27
[BOJ] 2448 별 찍기 - 11 (C/C++)  (0) 2022.09.04
[BOJ] 17837 새로운 게임 2 (C/C++)  (0) 2022.04.30
[BOJ] 19238 스타트 택시 (C/C++)  (2) 2022.04.27
[BOJ] 15685 드래곤 커브 (C/C++)  (0) 2022.04.26