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

박기영·2022년 9월 12일
0

프로그래머스

목록 보기
5/159
post-custom-banner

프로그래머스. 코딩테스트 고득점 Kit.
완전탐색. 1단계

solution

function solution(sizes) {    
      let answer = 1;

      // 가로의 길이를 제일 긴 변으로 설정 후 회전  
      for (let i = 0; i < sizes.length; i++) {
          let w = sizes[i][0];
          
          let h = sizes[i][1];
          
          if (w < h) {
              [sizes[i][0], sizes[i][1]] = [sizes[i][1], sizes[i][0]];
          }
      }

    // 가로의 최대값 * 세로의 최대값 = 최소 지갑  
    let x = sizes.sort((a, b) => b[0] - a[0])[0][0];
 
    let y = sizes.sort((a, b) => b[1] - a[1])[0][1];
  
    answer = x * y;
  
    return answer;
}

처음부터 접근을 이상하게 해서 결국 다른 분의 풀이를 참고했다.
아예 문제 처음부터 명함의 긴 부분을 가로로 만들고,
짧은 부분을 세로로 만들었다.

긴 부분은 긴 부분끼리 비교하고, 짧은 부분은 짧은 부분끼리 비교를 하는 간단한 생각이었다.

이러면 가로 길이 중 가장 큰 수와 세로 길이 중 가장 큰 수가 명함 케이스를 만드는 가장 작은 넓이가 된다.

참고 자료

참고 자료 1

profile
나를 믿는 사람들을, 실망시키지 않도록
post-custom-banner

0개의 댓글