알고리즘 : 최대 너비 구하기

dory·2021년 5월 7일
0

알고리즘

목록 보기
4/7

문제

인자인 height는 숫자로 이루어진 배열입니다.
그래프로 생각한다면 y축의 값이고, 높이 값을 갖고 있습니다.

아래의 그래프라면 height 배열은 [1, 8, 6, 2, 5, 4, 8, 3, 7] 입니다.

저 그래프에 물을 담는다고 생각하고,
물을 담을 수 있는 가장 넓은 면적의 값을 반환해주세요.

가정
배열의 길이는 2이상입니다.

풀이

function getMaxArea(height) {
  let allArea = [];
  for (let i = 0; i < height.length; i++) {
    for (let t = i+1; t < height.length; t++) {
     allArea.push((t-i) * (Math.min(height[i],height[t])))
    }
  }
  return Math.max(arr3);
}

이중 반복문을 사용하여 두 값을 비교한다.
이때 두 값의 인덱스 차이는 width가 되고, 두 값 중 작은 값이 height가 된다.
그렇게 구한 모든 경우의 수를 allArea에 담고 최종적으로 가장 큰 값은 리턴한다.

0개의 댓글