2022년 2월 14일 월요일 - 언제 주말이 오는거죠?


오늘 올려볼 문제는 104번 Maximum Depth of Binary Tree 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

팀원 분이 굉장히 짧은 코드로 풀어서 오오 했다


입력


사진에서도 볼 수 있듯이 Tree를 이루고 있는 rootNode 하나가 입력으로 주어진다.



풀이 및 코드


주어진 트리의 최대 깊이를 찾는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

BFS를 사용해서 트리의 최대 깊이를 찾았다.

하지만 주어진 함수를 사용하는 방법도 알게되어서 이도 같이 적겠다.


이제 코드를 봐보자!


풀이코드

class Solution {
    int result = 0;
    public int maxDepth(TreeNode root) {
        Queue<TreeNode> q = new LinkedList<TreeNode>();
        q.add(root);

        solve(q, -1);

        return result;
    }

    public void solve(Queue<TreeNode> q, int level)
    {
        if(q.isEmpty())
        {
            result = level;
            return;
        }

        Queue<TreeNode> next = new LinkedList<TreeNode>();

        while(!q.isEmpty())
        {
            TreeNode temp = q.poll();

            if(temp == null)
                continue;

            next.add(temp.left);
            next.add(temp.right);
        }

        solve(next, level + 1);
    }
}

짧은 코드

class Solution {
    public int maxDepth(TreeNode root) {
        if(root == null)
            return 0;
        return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }
}



제출 화면

leetcode 문제 맞았습니다


오늘은 생각보다 더 간단하게 풀 수 있는 문제를 조금 복잡하게 푼 것에 대해서 아쉬웠다.

그래도 쉽게 풀 수 있어서 다행이다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts