Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Jul 22, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/1539

🧭 풀이 시간

20분

👀 체감 난이도

✏️ 문제 설명

0부터 N-1까지의 수가 한 번씩 등장하는 수열이 주어진다.
이 수열로 이진 검색 트리를 만들었을 때, 모든 점의 높이 합을 구해보자.

🔍 풀이 방법

  • TreeSet

이진 검색 트리에 어떤 수 a가 추가되는 경우는 두 가지로 나눌 수 있다.

  1. a가 어떤 수의 왼쪽 자식이 되는 경우
    -> 지금까지 트리에 들어간 수들 중 a보다 크면서 가장 작은 수의 왼쪽 자식으로 붙게 된다.

  2. a가 어떤 수의 오른쪽 자식이 되는 경우
    -> 마찬가지로 지금까지 트리에 들어간 수들 중 a보다 작으면서 가장 큰 수의 오른쪽 자식으로 붙게 된다.

TreeSet으로 정렬된 상태에서 a의 양 옆 수를 체크하고, 그 중 더 늦게 들어간 수한테 붙게 된다.
각 점의 높이와 나온 순서를 배열로 관리해서 해결했다.

⏳ 회고

상쾌한 아침

@oncsr oncsr self-assigned this Jul 22, 2025
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Jul 22, 2025
@ShinHeeEul ShinHeeEul merged commit 14ae6b4 into main Jul 22, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants