문제를 보면 명함을 돌려서 수납할 수 있다는 말이 있고 모든 명함을 수납할 수 있는 가장 작은 사이즈의 지갑을 만드려고 한다.
가로의 최대 길이와 세로의 최대 길이를 구해야하는데 최대 길이를 구할 때 회전했을 경우 즉 [a, b] 명함의 가로세로 길이, a와 b의 순서가 바뀌어도 된다는 것으로 이해했다.
sort()를 사용하여 각각의 배열 안의 숫자를 오름차순으로 변경하고 for문을 통해 돌고있는 i로 각각의 명함 크기가 bestSize의 [0]과 [1]보다 크면 bestSize에 저장하여 각각의 최대 사이즈를 구하고 곱하는 방식으로 해결하였다.
[나의 풀이]
function solution(sizes) {
let bestSize = [0,0]
for (let i =0; sizes.length > i; i++) {
let [a,b] = sizes[i].sort((a,b) => a-b)
if (a > bestSize[0]) {
bestSize[0] = a
}
if (b > bestSize[1]) {
bestSize[1] = b
}
}
return bestSize[0]*bestSize[1]
}