[프로그래머스 lev1/JS] 최소직사각형

woolee의 기록보관소·2022년 11월 8일
0

알고리즘 문제풀이

목록 보기
56/178

문제 출처

프로그래머스 lev1 - 최소직사각형

문제

나의 풀이

function solution(sizes) {
  // 왼쪽 : 최대값, 오른쪽 : 최소값 
  // 왼쪽 : 최대값 중 최대, 오른쪽 : 최소값 중 최대 
  let leftMax=0, rightMax=0; 
  for (let i=0; i<sizes.length; i++) { 
    if (sizes[i][0] < sizes[i][1]) { // 근데 이 부분을 그냥 sort 정렬로 해도 될듯
      sizes[i] = [sizes[i][1], sizes[i][0]];
    }

    if (leftMax < sizes[i][0]) leftMax = sizes[i][0];
    if (rightMax < sizes[i][1]) rightMax = sizes[i][1];
  }
  return leftMax * rightMax;
}

console.log(solution([[60, 50], [30, 70], [60, 30], [80, 40]]));

다른 풀이

가독성이 좋다.

function solution(sizes) {
    const rotated = sizes.map(([w, h]) => w < h ? [h, w] : [w, h]);

    let maxSize = [0, 0];
    rotated.forEach(([w, h]) => {
        if (w > maxSize[0]) maxSize[0] = w;
        if (h > maxSize[1]) maxSize[1] = h;
    })
    return maxSize[0]*maxSize[1];
}
profile
https://medium.com/@wooleejaan

0개의 댓글