[Leetcode/Python] 96. Unique Binary Search Trees

2022. 5. 24. 21:38ยทEngineering/Algorithm

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
'Engineering/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Algorithm] ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•œ Scala ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Python] ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค
  • [Algorithm] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ„๋‹จ ์ •๋ฆฌ์™€ Python ๊ตฌํ˜„ (๋ฒ„๋ธ”์ •๋ ฌ, ์„ ํƒ์ •๋ ฌ, ํ€ต์ •๋ ฌ, ๋ณ‘ํ•ฉ์ •๋ ฌ, ํž™์ •๋ ฌ)
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ (feat. Leetcode)
AI๊ฑด์ถ•๊ฐ€
AI๊ฑด์ถ•๊ฐ€
LLMOps Engineer๋กœ ์ปค๋ฆฌ์–ด๋ฅผ ์Œ“๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋งŒ์˜ ์‹œ์ ์œผ๋กœ AI๋ฅผ ํ•ด์„ํ•˜๊ณ ์ž ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ•จ๊ป˜ ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Š๐Ÿš€
  • AI๊ฑด์ถ•๊ฐ€
    DeepFlame AI
    AI๊ฑด์ถ•๊ฐ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • AI
      • Ops
      • Engineering
        • Algorithm
        • CS
        • BigData
        • Tools
      • Personal
        • Toy Project
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    mongoDB
    DP
    Hive
    Bio
    Cloud
    PostgreSQL
    algorithm
    hadoop
    MSA
    mlops
    Python
    scala
    kubernetes
    airflow
    Ai
    ์„ธ๋ฏธ๋‚˜
    LeetCode
    AWS
    deepseek
    db
    ec2
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
AI๊ฑด์ถ•๊ฐ€
[Leetcode/Python] 96. Unique Binary Search Trees
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”