[1스4코2파] # 167. LeetCode Pattern 543. Diameter of Binary Tree

gunny·2023년 6월 19일
0

코딩테스트

목록 보기
168/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (167차)
[4코1파] 2023.01.13~ (159일차)
[1스4코1파] 2023.04.12~ (70일차)
[1스4코2파] 2023.05.03 ~ (49일차)

Today :

2023.06.17 [167일차]
LeetCode Patterns
543. Diameter of Binary Tree
https://leetcode.com/problems/diameter-of-binary-tree/

543. Diameter of Binary Tree

https://leetcode.com/problems/diameter-of-binary-tree/

문제 설명

binary tree의 가장 긴 path의 길이를 구함

문제 풀이 방법

https://youtu.be/bkxqA8Rfv04
dfs recursion으로 풀면 된다고함
영상봤는데 이해 안됨ㅋ

내 코드

영상보고 따라친 recursion 풀이
따라쓰기 수준

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right
class Solution:
    def diameterOfBinaryTree(self, root: TreeNode) -> int:
        res = [0]
        
        def dfs(root):
            if not root:
                return -1
            left = dfs(root.left)
            right = dfs(root.right)
            res[0] = max(res[0], 2+left+right)
            
            return 1+max(left, right)

        dfs(root)
        return res[0]

증빙

여담

? 영상봐도 이해 안됨
졸려서 이해안되는건지 빡대갈이라서 이해안되는건지
둘다 인건지

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글