n개의 데이터가 height 배열에 주어졌다.
height 배열의 각각의 원소는 아래 그림과 같이 각 벽에 대한 높이를 의미한다.
이와 같이 높이 값들이 주어졌을 때,
이 중에서 어떤 두 벽을 고르면 가장 많은 물을 담을 수 있는지를 확인하고
그 때의 면적을 출력하세요.
입력 | 출력 |
1, 8, 6, 2, 5, 4, 8, 3, 7 | 49 |
5, 3, 9, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 | 26 |
public static int solution(int[] height) {
int left = 0;
int right = height.length-1;
int maxArea = 0;
while(left<right){
int x = (right - left);
int y = (height[left]>height[right]) ? height[right] : height[left];
int curArea = x * y;
maxArea = maxArea >curArea ? maxArea : curArea;
if (height[left] < height[right]) {
left++;
} else {
right--;
}
}
return maxArea;
}
public static int solution(int[] height) {
int max = 0;
for (int i = 0; i < height.length-1; i++) {
for (int j = i+1; j < height.length; j++) {
int min = Math.min(height[i],height[j]);
int bulk = min * (j-i);
if (bulk > max){
max = bulk;
}
}
}
return max;
}
[Java] 기초수학 - 순열 for문 (0) | 2023.01.13 |
---|---|
[Java]연습문제5 - 로마숫자 정수로 변환 (0) | 2023.01.08 |
[Java] 연습문제4 - 여러가지 별 찍기 (0) | 2023.01.08 |
[Java] 연습문제3 - Replace 없이 특정 문자열 원하는 문자로 바꾸기 (1) | 2023.01.07 |
[Java] 연습문제2 - ASCII코드 대소문자 상호 변환 (1) | 2023.01.07 |
댓글 영역