풀이
function solution(sizes) {
let arr = [0,0]
sizes.forEach(el=>{
let [l, s] = el.sort((a,b)=>b-a)
if(l>arr[0]) arr[0] =l
if(s>arr[1]) arr[1] =s
})
return arr[0]*arr[1]
}
먼저 size 라는 배열은 [ [60,50] , [30,70] , [30,60] , [80,40] ] 이렇게 들어온다
size 배열을 forEach 매소드를 이용해 배열속 인댁스안에 있는 element 들을 내림차순으로 정렬해주고
예:
[60,50]
[70,30]
[60,30]
[80,40]
배열속 index 0 값이 arr[0] 보다 크면 arr[0]에 저장
배열속 index 1 값이 arr[1] 보다 크면 저장하여
제일 큰 숫자들만 남게 저장된후
곱한값을 리턴.
다른사람 풀이:
function solution(sizes) {
let w = 0;
let h = 0;
sizes.forEach(s => {
const [a, b] = s.sort((a,b) => a-b);
if (a > h) h = a;
if (b > w) w = b;
});
return w * h;
}
이분은 따로 미리 분리해서 값을 똑같이 저장후 곱한값을 리턴.
function solution(sizes) {
const [hor, ver] = sizes.reduce(([h, v], [a, b]) => [Math.max(h, Math.max(a, b)), Math.max(v, Math.min(a, b))], [0, 0])
return hor * ver;
}