[프로그래머스] 최소직사각형

김태영·2022년 5월 3일
0

[JavaScript] Coding test

목록 보기
8/11
post-thumbnail

문제 자세히 보기



문제를 보면 명함을 돌려서 수납할 수 있다는 말이 있고 모든 명함을 수납할 수 있는 가장 작은 사이즈의 지갑을 만드려고 한다.

가로의 최대 길이와 세로의 최대 길이를 구해야하는데 최대 길이를 구할 때 회전했을 경우 즉 [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]
}



profile
즐거운 개발을 위해~

0개의 댓글