본문 바로가기
728x90
반응형

Leetcode43

637. Average of Levels in Binary Tree 이진 트리의 각 레벨에 있는 노드들의 평균 값을 계산하는 문제입니다. 이진 트리의 루트가 주어지면, 각 레벨의 노드들의 평균 값을 배열 형태로 반환해야 합니다.이진 트리의 각 레벨에 있는 노드들의 평균 값을 계산하는 문제입니다. 이진 트리의 루트가 주어지면, 각 레벨의 노드들의 평균 값을 배열 형태로 반환해야 합니다. 실제 답과 10^-5 이내의 오차는 허용됩니다. /** * 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 .. 2024. 4. 18.
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.
2089. Find Target Indices After Sorting Array 0으로 시작하는 정수 배열 nums와 목표 요소 target이 주어집니다. 목표 인덱스는 nums[i] == target인 인덱스 i입니다. nums를 비감소 순서로 정렬한 후 nums의 목표 인덱스 목록을 반환하십시오. 목표 인덱스가 없으면 빈 목록을 반환합니다. 반환된 목록은 증가 순서로 정렬되어야 합니다. 예를 들어: 예제 1: 입력: nums = [1,2,5,2,3], target = 2 출력: [1,2] 설명: 정렬 후, nums는 [1, 2, 2 ,3,5]입니다. nums[i] == 2인 인덱스는 1과 2입니다. 예제 2: 입력: nums = [1,2,5,2,3], target = 3 출력: [3] 설명: 정렬 후, nums는 [1,2,2, 3 ,5]입니다. nums[i] == 3인 인덱스는 .. 2024. 3. 27.
162. Find Peak Element 어진 정수 배열에서 peak element를 찾는 문제입니다. Peak element는 해당 위치에서 좌우의 원소보다 큰 값을 갖는 원소를 의미합니다. 예를 들어, 배열 [1, 2, 3, 1]에서 3은 peak element입니다. 배열 [1, 2, 1, 3, 5, 6, 4]에서 6도 peak element입니다. 이 문제를 풀기 위한 일반적인 방법은 이진 검색(Binary Search)을 사용하는 것입니다. 이진 검색을 사용하면 O(log N)의 시간 복잡도로 peak element를 찾을 수 있습니다. public int FindPeakElement(int[] nums) { if (nums.Length == 0) { return -1; // 배열이 비어있는 경우 } // 배열의 길이가 1인 경우 if.. 2023. 11. 16.
160. Intersection of Two Linked Lists 두 개의 연결 리스트가 주어졌을 때, 두 리스트가 교차하는 지점을 찾는 문제입니다. 교차 지점이 없으면 null을 반환해야 합니다. List A: A1 → A2 ↘ C1 → C2 → C3 ↗ List B:B1 → B2 → B3 이 경우, 리스트 A와 리스트 B는 C1에서 교차하고, 이 지점이 교차 지점이 됩니다. 두 연결 리스트의 길이를 각각 계산합니다. 두 리스트의 길이 차이를 구하고, 길이가 더 긴 리스트의 포인터를 그 차이만큼 이동시킵니다. 이제 두 포인터를 동시에 이동시켜 교차 지점을 찾습니다. public class ListNode { public int val; public ListNode next; public ListNode(int val = 0, ListNode next = null) {.. 2023. 11. 15.
455. Assign Cookies 이 문제에서는 어떤 아이들이 존재하며, 각각의 아이들은 만족할 수 있는 최소한의 쿠키 크기를 가지고 있습니다. 또한, 쿠키들도 각각의 크기를 가지고 있습니다. 이 문제에서는 아이들에게 쿠키를 나눠주는 방법을 찾아야 합니다. 이때, 각 아이들은 최대 한 개의 쿠키만 받을 수 있습니다. 따라서, 가능한 많은 아이들에게 쿠키를 나눠주는 방법을 찾아야 합니다. 이 문제는 그리디 알고리즘을 사용하여 해결할 수 있습니다. public class Solution { public int FindContentChildren(int[] g, int[] s) { Array.Sort(g); Array.Sort(s); int i = 0; for (int j = 0; i < g.Length && j < s.Length; j++).. 2023. 11. 10.
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
반응형