Algorithm
-
두개의 정렬된 배열이 주어진다.이 두개의 배열을 합쳐서 정렬하라.하나의 배열의 크기는 이미 두개의 배열이 합쳐진 크기이고, 뒷부분은 0으로 채워져 있다. 추가적인 공간을 사용하지않고 주어진 배열을 활용하여 머지해야한다. class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { }} 이 배열 문제 또한 두개의 포인터를 이용해서 탐색을 하고 다른 하나의 메인 포인터가 순회를 하는 형식이다.배열은 포인터를 통한 접근을 반드시 염두해보자. 더보기public void merge(int[] nums1, int m, int[] nums2, int n) { int idx1 = m - 1; int idx..
[LeetCode] 88 Merge Sorted Array두개의 정렬된 배열이 주어진다.이 두개의 배열을 합쳐서 정렬하라.하나의 배열의 크기는 이미 두개의 배열이 합쳐진 크기이고, 뒷부분은 0으로 채워져 있다. 추가적인 공간을 사용하지않고 주어진 배열을 활용하여 머지해야한다. class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { }} 이 배열 문제 또한 두개의 포인터를 이용해서 탐색을 하고 다른 하나의 메인 포인터가 순회를 하는 형식이다.배열은 포인터를 통한 접근을 반드시 염두해보자. 더보기public void merge(int[] nums1, int m, int[] nums2, int n) { int idx1 = m - 1; int idx..
2025.08.18 -
red, blue, white 세가지 색으로 구성된 배열이 주어졌을때 이를 추가공간 사용없이 같은색끼리 모아서 정렬하라 (0, 1, 2) 숫자로 표현됨class Solution { public void sortColors(int[] nums) { }} 이것도 포인터를 이용해서 문제에 접근할 수 있다. 0을 가리키는 포인터, 2를 가리키는 포인터, 배열을 순회하는 포인터 더보기{ public void sortColors(int[] nums) { int idx0 = 0; int idx2 = nums.length - 1; int i = 0; while (i
[LeetCode] 75 Sort Colorsred, blue, white 세가지 색으로 구성된 배열이 주어졌을때 이를 추가공간 사용없이 같은색끼리 모아서 정렬하라 (0, 1, 2) 숫자로 표현됨class Solution { public void sortColors(int[] nums) { }} 이것도 포인터를 이용해서 문제에 접근할 수 있다. 0을 가리키는 포인터, 2를 가리키는 포인터, 배열을 순회하는 포인터 더보기{ public void sortColors(int[] nums) { int idx0 = 0; int idx2 = nums.length - 1; int i = 0; while (i
2025.08.15 -
주어진 배열의 모둔 숫자는 양수이다.target과 같거나 큰 수를 구성하는 subArray의 길이를 리턴하라단, 가장작은 길이를 리턴하라.만약 없다면 0을 리턴하라.class Solution { public int minSubArrayLen(int target, int[] nums) { }} 앞에서 풀어본 find pivot index와 유사하게 sliding 관련 문제이다.다만, 앞에 문제는 왼쪽의 끝이 정해져 있던 느낌이라면이번 문제는 왼쪽을 향해 움직이고, 그와 동시에 조건이 만족하면 오른쪽도 차차 움직이며 조건을 검증해가는sliding + two pointer의 느낌이다. 더보기{ int right = 0; int left = 0; int sum = 0; ..
[LeetCode] 209 Minimum Size Subarray Sum주어진 배열의 모둔 숫자는 양수이다.target과 같거나 큰 수를 구성하는 subArray의 길이를 리턴하라단, 가장작은 길이를 리턴하라.만약 없다면 0을 리턴하라.class Solution { public int minSubArrayLen(int target, int[] nums) { }} 앞에서 풀어본 find pivot index와 유사하게 sliding 관련 문제이다.다만, 앞에 문제는 왼쪽의 끝이 정해져 있던 느낌이라면이번 문제는 왼쪽을 향해 움직이고, 그와 동시에 조건이 만족하면 오른쪽도 차차 움직이며 조건을 검증해가는sliding + two pointer의 느낌이다. 더보기{ int right = 0; int left = 0; int sum = 0; ..
2025.06.30 -
주어진 배열에서 pivot 인덱스를 기준으로 오른쪽, 왼쪽 값의 합이 같은 위치를 찾아라.만약 pivot의 위치가 0인 경우 왼쪽 배열의 합은 0인 것이다. class Solution { public int pivotIndex(int[] nums) { }} 배열 문제를 푸는 핵심 방법 중에 하나인 slide를 적용해서 문제를 해결할 수 있다. 먼저 전체 sum을 구하고 전체 sum에서 pivot의 위치에 해당하는 값을 뺀 것이 오른쪽 sumpivot이 지나간 값들의 합이 왼쪽 sum으로 두고 각각의 값의 변화를 비교하면 된다. 더보기{ int sum = Arrays.stream(nums).sum(); int leftsum = 0; int r..
[LeetCode] 724 Find Pivot Index주어진 배열에서 pivot 인덱스를 기준으로 오른쪽, 왼쪽 값의 합이 같은 위치를 찾아라.만약 pivot의 위치가 0인 경우 왼쪽 배열의 합은 0인 것이다. class Solution { public int pivotIndex(int[] nums) { }} 배열 문제를 푸는 핵심 방법 중에 하나인 slide를 적용해서 문제를 해결할 수 있다. 먼저 전체 sum을 구하고 전체 sum에서 pivot의 위치에 해당하는 값을 뺀 것이 오른쪽 sumpivot이 지나간 값들의 합이 왼쪽 sum으로 두고 각각의 값의 변화를 비교하면 된다. 더보기{ int sum = Arrays.stream(nums).sum(); int leftsum = 0; int r..
2025.06.28