[TIL] 카테고리/알고리즘 문제풀기

[자바스크립트] 프로그래머스 Lv.1 최소직사각형

티레이니 2022. 5. 17. 08:50

 

 

let sizes = [[60, 50], [130, 70], [60, 30], [80, 40]]
let answer = 0
let h = 0


for (i=0; i<sizes.length; i++) { // 명함 종류만큼 진행
  sizes[i].sort(function(a,b){return a-b}) //우선 가로값/세로값의 순서를 맞춘다
  if (h < sizes[i][1]) {  // 세로값 중 가장 큰 것은 따로 저장시킴
    h = sizes[i][1]
  }
  sizes[i].pop() // 배열에서 세로값 빼버리기
}

sizes.sort(function(a,b){return b-a}) // 이제 가로값만 남은 배열을 내림차순으로 다시 정렬


console.log(sizes[0]*h) // 가장 큰 가로값과 가장큰 세로값 곱해주기


// 다른사람답변 : math. min/max 메서드를 사용하는 방법

// function solution(sizes) {
//     sizes.map((item) => item.sort((a, b) => b - a));
//     let hMax = Math.max.apply(null, sizes.map((item) => item[0]));
//     let vMax = Math.max.apply(null, sizes.map((item) => item[1]));
//     return hMax * vMax;

 

 

코딩테스트 연습 - 최소직사각형

[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

programmers.co.kr