๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ Algorithm/DFS BFS

[LeetCode] 2236๋ฒˆ: ํŠธ๋ฆฌ ๊ตฌ์กฐ

by HelloRabbit 2023. 3. 9.
728x90

Goal

1. ํŠธ๋ฆฌ ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ
2. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํŠธ๋ฆฌ ๊ตฌ์กฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์–ด๋ณด๊ธฐ

 

ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ž€?

ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ž€ ๋…ธ๋“œ(Node)์™€ ์ž์‹๋…ธ๋“œ(Child Node)๋กœ ๊ตฌ์„ฑ๋œ ๊ตฌ์กฐ๋ฅผ ์–˜๊ธฐํ•œ๋‹ค.

๊ฐ€์žฅ ํ”ํžˆ ๋ณด๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํŠธ๋ฆฌ ๊ตฌ์กฐ(Binary Tree)๋กœ ๊ฐ ๋…ธ๋“œ๊ฐ€ ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ž์‹๋…ธ๋“œ 2๊ฐœ๋ฅผ ๊ฐ€์ง„ ํ˜•ํƒœ๋‹ค.

๊ฐ„๋‹จํ•œ ํŠธ๋ฆฌ ๊ตฌ์กฐ

 

LeetCode 2236๋ฒˆ: Root Equals Sum of Children (ํ’€์–ด๋ณด๊ธฐ)

Hint

1. root๋ผ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ์ •์˜ :
      root.val = ํ˜„์žฌ ๋…ธ๋“œ์˜ ์ˆ˜
      root.left = ํ˜„์žฌ ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์ž์‹๋…ธ๋“œ
      root.right= ํ˜„์žฌ ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์ž์‹๋…ธ๋“œ
2. root.val์ด ํ˜„์žฌ ๋…ธ๋“œ์˜ ์ˆ˜๋ผ๋ฉด root.left ๋…ธ๋“œ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด? (์ •๋‹ต์€ ๋ฐ‘์— ํ•˜์ด๋ผ์ดํŠธํ•˜๋ฉด ๋ณด์ž„)
      root.left.val = ํ˜„์žฌ ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์ž์‹๋…ธ๋“œ์˜ ์ˆ˜
      root.right.val = ํ˜„์žฌ ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์ž์‹๋…ธ๋“œ์˜ ์ˆ˜

 

Solution

class Solution:
    def checkTree(self, root: Optional[TreeNode]) -> bool:
    	# ํ˜„์žฌ ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์ž์‹๋…ธ๋“œ์˜ ์ˆ˜์™€ ์˜ค๋ฅธ์ชฝ ์ž์‹๋…ธ๋“œ์˜ ์ˆ˜๋ฅผ ๋”ํ•œ ํ›„ ๋น„๊ต
        if root.val == root.left.val + root.right.val: 
            return True
        return False

 

 

 

'๐Ÿงฉ Algorithm > DFS BFS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[LeetCode] 226๋ฒˆ: Invert Binary Tree  (0) 2023.03.10

๋Œ“๊ธ€