😎풀이

  1. depth: 최대 깊이
  2. dfs: 깊이 우선탐색, 인자로 현재 조회중인 노드(node)와 해당 노드의 깊이(curDepth)를 갖음
  3. dfsroot로 부터 1의 깊이로 수행
    3-1. 현재 노드가 null이라면, 탐색 종료
    3-2. depth에 현재 깊이와 탐색된 최대 깊이 비교하여 할당
    3-3. 현재 노드의 leaf 노드들을 순회하며 깊이를 추가한 상태로 탐색
  4. 탐색된 최대 깊이(depth) 반환
function maxDepth(root: _Node | null): number {
    let depth = 0
    function dfs(node: _Node | null, curDepth: number) {
        if(!node) return 
        depth = Math.max(depth, curDepth)
        for(const curNode of node.children) dfs(curNode, curDepth + 1)
    }
    dfs(root, 1)
    return depth
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글