인자인 height는 숫자로 이루어진 배열이다. 그래프로 생각한다면 y축의 값이고, 높이 값을 갖고 있다.
아래의 그래프라면 height 배열은 [1, 8, 6, 2, 5, 4, 8, 3, 7] 이다.
저 그래프에 물을 담는다고 생각하고, 물을 담을 수 있는 가장 넓은 면적의 값을 반환하라.
가정 ) 배열의 길이는 2 이상이다.
function getMaxArea(height) {
let arr = [];
for(let i=0; i<height.length; i++) {
for(let j=height.length-1; j>i; j--) {
arr.push(Math.min(height[i], height[j])*(j-i));
}
}
arr.sort(function(a, b){
return b-a;
})
return arr.shift();
}
위의 풀이와 같은 원리이나 코드의 길이를 줄여 가독성 높임
function getMaxArea(height) {
let area=0;
for (let i=0; i<height.length; i++) {
for (let j=i+1; j<height.length; j++) {
area = Math.max(Math.min(height[i], height[j]) * (j-i), area);
}
}
return area;
}