티스토리 뷰
2250번: 트리의 높이와 너비
첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다.
www.acmicpc.net
1. 각 노드의 열은 왼쪽에 있는 노드들의 개수 + 1이다. 왼쪽 서브 트리에 속하는 노드의 개수와 왼쪽에 있지만 서브 트리에 속하지 않는 노드를 잘 파악해야 한다. 왼쪽 서브트리의 개수는 재귀를 이용하여 구하고 그 외의 노드는 따로 매개변수를 이용하여 전달하여야 한다.
2. 각 깊이의 가장 왼쪽 열과 가장 오른쪽 열을 파악하면 각 깊이의 최대 너비를 알 수 있다. 노드를 방문할 때마다 업데이트 해주고 마지막에 최대 너비와 그 깊이를 구하면 된다.
문제를 풀긴 풀었는데 1번 부분 논리를 좀 더 깔금하게 정리할 수 없나 고민 중이다. 왼쪽에 있지만 왼쪽 서브트리에 없는 노드들을 재귀적으로 파악할 방법이 있으면 깔끔할 텐데.
- Source code link
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준 2243
- 백준 3006
- 터보소트
- boj 3006
- boj 12713
- boj 1106
- 사탕상자
- 백준 14868
- boj 10775
- 제로베이스 스쿨
- 백준 10775
- 부트 캠프
- boj 14868
- 백준 10473
- boj 10473
- 인간 대포
- 백준 16562
- 백준 1106
- 제로베이스 백엔드 스쿨
- boj 9345
- boj 16562
- boj 2336
- 백준 12713
- boj 1280
- 디지털 비디오 디스크
- Ugly Numbers
- 백준 1280
- 백준 9345
- boj 2243
- 백준 2336
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함