본문 바로가기
728x90
반응형

tree15

112. Path Sum 주어진 이진 트리에서 루트부터 리프까지의 경로 중 합이 특정 값과 같은 경로가 있는지 확인하는 문제입니다. 간단히 말하면, 주어진 트리에서 어떤 경로를 따라 이동하면서 노드의 값을 더했을 때, 그 합이 주어진 값과 같은지를 확인하는 것입니다. /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNode left; * public TreeNode right; * public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) { * this.val = val; * this.left = left; * this.right = rig.. 2024. 4. 23.
222. Count Complete Tree Nodes 이진 트리에서 노드의 수를 세는 문제입니다. 이 문제에서는 완전 이진 트리의 루트가 주어지고, 트리에 있는 노드의 수를 반환해야 합니다. 완전 이진 트리는 모든 레벨이 완전히 채워져 있고, 마지막 레벨의 모든 노드는 가능한 한 왼쪽에 있습니다. 마지막 레벨 h에서 노드의 수는 1과 2h 사이입니다. 이 문제를 해결하기 위한 알고리즘은 O(n)보다 작은 시간 복잡도를 가져야 합니다. 예시: 예시 1: 입력: root = [1,2,3,4,5,6], 출력: 6 예시 2: 입력: root = [], 출력: 0 예시 3: 입력: root = 1, 출력: 1 제약 조건: 트리의 노드 수는 범위 [0, 5 * 10^4] 내에 있습니다. 0 2024. 4. 22.
98. Validate Binary Search Tree 이진 트리가 유효한 이진 탐색 트리(Binary Search Tree, BST)인지 판별하는 것입니다. 노드의 왼쪽 서브트리에는 노드의 키보다 작은 키를 가진 노드만 포함되어 있습니다. 노드의 오른쪽 서브트리에는 노드의 키보다 큰 키를 가진 노드만 포함되어 있습니다. 왼쪽과 오른쪽 서브트리 모두 이진 탐색 트리여야 합니다. 예시 1: 입력: root = [2,1,3], 출력: true 예시 2: 입력: root = [5,1,4,null,null,3,6], 출력: false. 설명: 루트 노드의 값은 5이지만, 그 오른쪽 자식 노드의 값은 4입니다. 트리의 노드 수는 범위 [1, 10^4] 내에 있습니다. 노드의 값은 -2^31 2024. 4. 17.
findProfession 이진 트리의 특정 레벨과 위치에 있는 사람의 직업을 결정하는 문제입니다. 만약 레벨이 1인 경우, 해당 사람의 직업은 "Engineer"입니다. 그렇지 않은 경우, 해당 사람의 직업은 부모의 직업에 따라 결정됩니다. 부모가 "Engineer"인 경우, 해당 사람의 위치에 따라 “Engineer” 또는 "Doctor"로 번갈아가며 결정됩니다. 부모가 "Doctor"인 경우, 해당 사람의 위치에 따라 직업이 반대로 결정됩니다 (짝수 위치는 “Engineer”, 홀수 위치는 “Doctor”). string solution(int level, int pos) { return findProfession(level,pos); } string findProfession(int level,int pos){ if(pos.. 2024. 4. 8.
isTreeSymmetric 주어진 이진 트리가 중심을 기준으로 대칭인지 여부를 판단하는 문제입니다. 이를 확인하기 위해서는 각 측면이 서로 거울처럼 반영되는지 확인해야 합니다. 트리가 비어 있으면 대칭이라고 판단합니다. 그렇지 않은 경우, 왼쪽 서브트리와 오른쪽 서브트리를 비교하여 값이 같은지 확인합니다. 서브트리들이 대칭적으로 구성되어 있는지 재귀적으로 확인합니다. // // Binary trees are already defined with this interface: // class Tree { // public T value { get; set; } // public Tree left { get; set; } // public Tree right { get; set; } // } bool solution(Tree t) { .. 2024. 4. 5.
hasPathWithGivenSum 이진 트리에서 특정 합계를 갖는 경로가 있는지 확인하는 문제를 해결하는 함수입니다. 주어진 이진 트리는 각 노드가 정수 값을 가지고 있습니다. // // Binary trees are already defined with this interface: // class Tree { // public T value { get; set; } // public Tree left { get; set; } // public Tree right { get; set; } // } bool solution(Tree t, int s) { return hasPathWithGivenSum(t,s); } bool hasPathWithGivenSum(Tree t, int s){ if(t == null) return false; i.. 2024. 4. 2.
144. Binary Tree Preorder Traversal 이진 트리를 전위 순회(preorder traversal)하는 방법을 구현하는 문제입니다. 문제 설명: 주어진 이진 트리를 전위 순회(preorder traversal)하는 방법은 다음과 같습니다: 루트 노드를 방문합니다. 왼쪽 서브트리를 전위 순회합니다. 오른쪽 서브트리를 전위 순회합니다. 전위 순회는 루트 노드를 가장 먼저 방문하고, 그 다음에 왼쪽 서브트리와 오른쪽 서브트리를 방문하는 순서입니다. 이 과정을 재귀적으로 수행하면 전체 이진 트리를 전위 순회할 수 있습니다. 예를 들어, 다음과 같은 이진 트리가 주어진 경우: 1 / \ 2 3 / \ 4 5 전위 순회(preorder traversal)는 다음과 같은 순서로 노드를 방문합니다: 1 -> 2 -> 4 -> 5 -> 3 이 문제를 해결하기 .. 2023. 11. 9.
728x90
반응형