본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Programmers] level 1: 최소직사각형 by JavaScript

by codingBear 2022. 7. 8.
728x90
반응형

 이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요.

 

 이번 문제는 주어진 가로, 세로 값이 담긴 배열을 활용하여 모든 크기의 명함을 담을 수 있는 지갑의 크기를 구하는 것이다. 주의할 점은 명함은 90도 회전해서도 보관할 수 있기 때문에 그 점도 고려해야 한다. 즉 초기 입력 받은 배열에서 지정된 가로, 세로 값의 위치에 구애 받지 않고 지갑 크기를 조합할 수 있다는 것이다. 이를 구현하기 위해 우선 배열을 정렬한 다음 임의의 가로 및 세로 값들을 서로 비교한 다음 최댓값끼리 곱하여 반환하면 정답이다.

 

Solutions

Solution 1.
function solution(sizes) {
  let width = 0;
  let height = 0;

  for (let size of sizes) {
    const sortedSize = size.sort((a, b) => a - b);
    if (width < sortedSize[0]) width = sortedSize[0];
    if (height < sortedSize[1]) height = sortedSize[1];
  }

  return width * height;
}
728x90
반응형

댓글