코드카타 | 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를 이용하여 그 중 가장 큰 값을 뽑으면 문제의 답이 된다.

좋은 웹페이지 즐겨찾기