https://leetcode.com/problems/container-with-most-water
가장 많은 물을 가두기 위해 어느 두 점을 선택해야 하는가.
너비라는 것이 가로 x 세로이다. 일단 가로를 가장 길게 설정해 둔 다음 가로를 좁혀가며 최댓값을 변경하면 될 것 같다.
이때 가로를 어떻게 좁히느냐가 문제인데 작은 것을 기준으로 세로가 정해지기 때문에 세로값이 작은 것을 변경시키는 방향으로 가는 것이 맞다.
class Solution {
public int maxArea(int[] height) {
int max = Integer.MIN_VALUE;
int left = 0;
int right = height.length - 1;
while (left < right) {
int sum = (right - left) * Math.min(height[left], height[right]);
max = Math.max(max, sum);
if (height[left] < height[right]) {
left++;
} else {
right--;
}
}
return max;
}
}
'Algorithm > LeetCode' 카테고리의 다른 글
LeetCode 209 - Minimum Size Subarray Sum (0) | 2024.10.04 |
---|---|
LeetCode 15 - 3Sum (0) | 2024.10.04 |
LeetCode 167 - Two Sum II - Input Array Is Sorted (0) | 2024.10.03 |
LeetCode 6 - Zigzag Conversion (1) | 2024.10.03 |
LeetCode 151 - Reverse Words in a String (1) | 2024.10.03 |