Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Dec 28, 2025

🧷 문제 링크

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

🧭 풀이 시간

20분

👀 체감 난이도

✏️ 문제 설명

정점 N개인 이진 트리가 주어지며, 각 정점에는 1 이상 M이하의 정수가 하나씩 적혀있다.
일부 정점에는 수가 지워져 있다.
수가 지워진 정점들에 1이상 M이하의 정수를 채워넣어 트리를 BST로 만드는 경우의 수를 구해보자.

🔍 풀이 방법

BST가 되려면 트리를 중위 순회했을 때 오름차순이 되어야 한다.
주어진 트리를 중위 순회하면 -1들이 섞여 나오게 되는데, -1이 연속한 구간을 묶어서 (-1의 개수, 사용 가능한 수의 개수) = (n, k)로 나타낸다.
이 때 -1에 수를 적절히 배치하는 경우의 수는 kCn이다.
생기는 구간들에 수를 배치할 때는 구간별로 서로 영향을 주지 않으니까 경우의 수를 싹 다 곱하면 된다.

⏳ 회고

예외 처리 주의

@oncsr oncsr self-assigned this Dec 28, 2025
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Dec 28, 2025
@ShinHeeEul ShinHeeEul merged commit c0414d9 into main Dec 28, 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