코드카타 | Day10
물을 담는 면적의 가로길이는 두 막대의 거리가 되고, 높이는 둘중에 작은 값이 된다.
function getMaxArea(height) {
let array = [];
for (i=0; i<height.length; i++) {
for (j=i+1; j<height.length; j++) {
areas = (j-i) * Math.min(height[i], height[j]);
array.push(areas);
console.log(array);
result = Math.max(...array);
}
}
return result;
}
막대 두개가 필요하므로, 둘중 앞에 있는 막대가 i, 뒤에꺼는 j를 사용하여 이중 for문을 돌린다.
areas = (j-i) * Math.min(height[i], height[j]);
여기서 (j-i)는 둘의 인덱스값의 차이, 즉 거리가 되고
Math.min(height[i], height[j])는 둘중에 더 작은 높이가 되므로
면적을 구할 수 있다.
모든 가능한 면적값을 배열에 담고 max를 이용하여 그 중 가장 큰 값을 뽑으면 문제의 답이 된다.
Author And Source
이 문제에 관하여(코드카타 | Day10), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soojjung/코드카타-Day10저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)