
https://leetcode.com/problems/unique-binary-search-trees/
Unique Binary Search Trees - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com

๐ค ๋ฌธ์ .
n ๊ฐ์ ๋ ธ๋๊ฐ ์ฃผ์ด์ก์ ๋, BST๋ฅผ ๊ตฌ์ฑํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
๐ค ํ์ด.
์ฒ์์๋ BST๋ฅผ ๋ชจ๋ ๊ตฌํ์ ํด์ผํ๋...? ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. (๊ทธ๋ฌ๋ leetcode ํน์ฑ์ ๊ทธ๋ฐ ๋ฌด์ํ ๋ฌธ์ ๋ ์ ์๋ค.)
ํ์ง๋ง ์ด๋ด ์ด ๋ฌธ์ ๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์์๋ค.
BST์ ์ฑ์ง์ ์๊ฐํด๋ณด์.
1. ๋ ธ๋์ ์ ์ฅ๋ ํค๋ ์ ์ผํ๋ค.
2. ๋ถ๋ชจ์ ํค๊ฐ ์ผ์ชฝ ์์ ๋ ธ๋์ ํค๋ณด๋ค ํฌ๋ค.
3. ๋ถ๋ชจ์ ํค๊ฐ ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ํค๋ณด๋ค ์๋ค.
4. ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ๋ BST์ด๋ค.
์ฌ๊ธฐ์ ์ฃผ๋ชฉํ ์ ์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ์๋ธ ํธ๋ฆฌ๋ BST๋ผ๋ ์ ์ด๋ค.
์ฆ, ๊ฐฏ์๊ฐ n์ธ BST๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ ๋ฃจํธ ๋ ธ๋๋ฅผ ๊ณ ์ ํด๋๋ฉด ์ข, ์ฐ ์์ ๋ ธ๋๋ BST์ด๊ณ , ๊ฐ์๋ ์ต๋ n-1์ด๋ค.
n = 4๋ฅผ ์๋ก ๋ค์ด๋ณด์. (์ฐ๋ฆฌ๋ leetcode ์์์์ n=3์ผ ๋ 5๊ฐ์ BST๊ฐ ๊ตฌ์ฑ๋๋ ๊ฒ์ ์๊ณ ์๋ค.)
- Root Node: 1 >> ์ผ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=0 and ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=3 >> ๊ฒฝ์ฐ์ ์: 1*5=5
- Root Node: 2 >> ์ผ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=1 and ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=2 >> ๊ฒฝ์ฐ์ ์: 1*2=2
- Root Node: 3 >> ์ผ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=2 and ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=1 >> ๊ฒฝ์ฐ์ ์: 2*1=2
- Root Node: 4 >> ์ผ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=3 and ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์=0 >> ๊ฒฝ์ฐ์ ์: 5*1=5
๋ฐ๋ผ์ ์ด ๊ฒฝ์ฐ์ ์๋ 14๊ฐ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์์ผ๋ก ์ ๊ฐํ๋ฉด ์๋์ ๊ฐ๋ค.
dp(n) = dp(n-1)*dp(0) + dp(n-1-1)*dp(1) + ... + dp(0)dp(n-1)
์ด๋ฅผ ์ฝ๋๋ก ๊ตฌํํด๋ณด์!
๐ Python
๐ Scala
'Engineering > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Algorithm] ์๊ณ ๋ฆฌ์ฆ์ ์ํ Scala ๊ธฐ๋ณธ ๋ฌธ๋ฒ (0) | 2022.08.22 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค/Python] ๊ฒฝ์ฃผ๋ก ๊ฑด์ค (0) | 2022.03.25 |
| [Algorithm] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋จ ์ ๋ฆฌ์ Python ๊ตฌํ (๋ฒ๋ธ์ ๋ ฌ, ์ ํ์ ๋ ฌ, ํต์ ๋ ฌ, ๋ณํฉ์ ๋ ฌ, ํ์ ๋ ฌ) (0) | 2022.02.21 |
| [์๊ณ ๋ฆฌ์ฆ] ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (feat. Leetcode) (0) | 2022.02.06 |
| [์๋ฃ๊ตฌ์กฐ] ํ (Heaps) (0) | 2022.02.05 |