Algorithm
-
주어진 배열의 모둔 숫자는 양수이다.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 -
배열에 존재하는 0을 모두 배열의 끝으로 옮겨라 단, 새로운 배열을 정의하지 않고 주어진 배열에서만 문제를 해결하라0 이외에 숫자들의 순서는 변경되지 않아야 한다.class Solution { public void moveZeroes(int[] nums) { }} 배열 문제를 바라보는 기본적인 시각을 길러주는 문제이다.포인터 두 개를 이용해서 문제의 요구사항을 처리하는 것! 하나는 숫자를 찾는 포인터나머지는 0의 위치를 가리키는 포인터 숫자를 찾는 포인터가 for문을 돌며 숫자를 찾고 숫자를 찾았다면 0의 위치를 가리키는 포인터와 swap swap이 된 경우에는 0의 위치를 가리키는 포인터는 숫자로 채워졌으니 ++1 하여 다음 위치를 가리킨다. 더보기{ int i = ..
[LeetCode] 283 Move zeros배열에 존재하는 0을 모두 배열의 끝으로 옮겨라 단, 새로운 배열을 정의하지 않고 주어진 배열에서만 문제를 해결하라0 이외에 숫자들의 순서는 변경되지 않아야 한다.class Solution { public void moveZeroes(int[] nums) { }} 배열 문제를 바라보는 기본적인 시각을 길러주는 문제이다.포인터 두 개를 이용해서 문제의 요구사항을 처리하는 것! 하나는 숫자를 찾는 포인터나머지는 0의 위치를 가리키는 포인터 숫자를 찾는 포인터가 for문을 돌며 숫자를 찾고 숫자를 찾았다면 0의 위치를 가리키는 포인터와 swap swap이 된 경우에는 0의 위치를 가리키는 포인터는 숫자로 채워졌으니 ++1 하여 다음 위치를 가리킨다. 더보기{ int i = ..
2025.06.26 -
정렬된 배열이 주어지고, 거기서 target을 가지고 있는 인덱스를 리턴하라. 없다면 -1을 리턴시간 복잡도는 O(log n)이여야 한다. class Solution { public int search(int[] nums, int target) { }} 정렬된 배열에서 원하는 target을 찾는 방법으로 binary search가 있는데 이를 구현하는 문제이다. 더보기{ int left = 0, right = nums.length - 1; while (left target) { right = mid - 1; } else if (nums[mid] 문제를 풀다 햇갈렸던 부분으로는 while을 진행하는 조건에 left, right 값 비교..
[LeetCode] 704 Binary Search정렬된 배열이 주어지고, 거기서 target을 가지고 있는 인덱스를 리턴하라. 없다면 -1을 리턴시간 복잡도는 O(log n)이여야 한다. class Solution { public int search(int[] nums, int target) { }} 정렬된 배열에서 원하는 target을 찾는 방법으로 binary search가 있는데 이를 구현하는 문제이다. 더보기{ int left = 0, right = nums.length - 1; while (left target) { right = mid - 1; } else if (nums[mid] 문제를 풀다 햇갈렸던 부분으로는 while을 진행하는 조건에 left, right 값 비교..
2025.06.23