문제설명
문제설명2
예시
입출력 예시
문제풀이
이번문제는 글이 하도 많아서 시작하는데 한참헤맸다.
집중이 잘 안돼..
사실for문 말고는 감이 전혀 안왔다.
function solution(sizes) {
let w = []; // 가로 선언
let h = []; // 세로 선언
for(let i=0; i<sizes.length; i++){ // for문으로 첫번째 배열의값을 구해주고 그 안에서 값을 비교해서 가로배열 / 세로 배열로 push해준다
if(sizes[i][0] > sizes[i][1] ){
// console.log(sizes[i][0]) // 60, 60, 80
// console.log(sizes[i][1]) // 50, 30, 40,
w.push(sizes[i][0]) // 푸쉬는 배열에 추가ㅏㅏㅏ
h.push(sizes[i][1])
}else{
w.push(sizes[i][1])
h.push(sizes[i][0])
}
}// 리듀스로 가로 배열중 최고값 찾기 if문 사용
let maxW = w.reduce( (acc ,cur) => acc > cur ? acc : cur); //80
let maxH = h.reduce( (acc ,cur) => acc > cur ? acc : cur); //50
return maxW * maxH // 최고 가로 값 * 최고 세로값
}
solution([[60, 50], [30, 70], [60, 30], [80, 40]])
고수분들의 풀이
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;
}
Math.max 함수는 숫자 집합중에 가장 큰 수를 리턴하는 함수이며,
Math.min 함수는 숫자 집합중에서 가장 작은 수를 리턴하는 함수입니다.
이문제는 그밖에도 forEach for of 등등 다양한 반복문과 함수들을 사용해 푼 문제로 확인되며 각각의 풀이법을 파헤쳐봐야겠다.