https://programmers.co.kr/learn/courses/30/lessons/86491
function solution(sizes) {
const width=[];
const height=[];
sizes.map(([s1, s2])=>{
if(s1>s2){
width.push(s1);
height.push(s2);
}
else {
width.push(s2);
height.push(s1);
}
});
return Math.max(...width) * Math.max(...height);
}
진짜 감도 안잡혀서 해설을 봤는데, 내가 실제로 명함 여러개를 가지고 있다고 생각했을 때를 생각해보니 쉬웠다.
가로나 세로의 값을 기준으로 명함을 모두 정리한다.
이때, 가로를 모두 길게 세로를 모두 짧게 정리해주면 가로 중 가장 긴 길이 * 세로 중 가장 긴 길이로 구할 수 있다.
따라서 위 문제에서도 가로가 세로보다 더 길게 만들어준 후, 각각의 max값을 곱하면 된다.
map을 꼭 새로운 배열을 만드는데 사용하는 것은 아니다. 이문제처럼 배열의 요소를 하나씩 가져올 수도 있다.
10/26
Math.max(...arr)