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.
350. Intersection of Two Arrays II
두 개의 정수 배열에서 중복된 원소들의 목록을 찾는 문제입니다. 이 문제에서는 중복된 원소를 모두 포함해야 합니다. 즉, 중복된 원소가 여러 번 나타날 수 있으며, 그만큼 결과 목록에도 여러 번 나타나야 합니다. 예를 들어, 두 배열 nums1 = [1, 2, 2, 1]과 nums2 = [2, 2]가 주어진 경우, 이 두 배열의 중복된 원소는 [2, 2]입니다. 이 문제를 해결하기 위한 일반적인 접근 방법은 다음과 같습니다: 하나의 배열을 Dictionary 또는 HashMap에 저장합니다. 이때, 배열의 각 원소를 키로 사용하고, 해당 원소의 빈도(나타난 횟수)를 값으로 저장합니다. 다른 배열을 순회하면서, 각 원소가 Dictionary에 이미 존재하면 빈도를 줄이고 결과 목록에 추가합니다. 빈도가 0..
2023. 11. 7.