[프로그래머스] 완전탐색 - 최소직사각형(Python3)

kimgaeul02·2023년 2월 2일

프로그래머스

목록 보기
7/11

📄 최소직사각형

🔗 완전탐색 : 최소직사각형


📌 해석

  • case 1
    문제와 동일

  • case 2
    가장 긴 가로, 세로가 14, 15이므로 210의 지갑을 만들어야 한다. 하지만 4번 명합을 가로로 눕혀 수납하면 12 x 15 = 180, 2번 명함을 눕히면 10 x 15 = 150, 1번 명함을 눕히면 8 x 15 = 120이다. 1번 명함의 크기가 다른 명함보다 크다는 특징이 있다.

  • case 3
    case 2와 같은 방법으로 적절히 명함을 수납하면 19 x 7 = 133이다.

위를 기반으로 알고리즘을 세우면 다음과 같다.

  1. 명함의 짧은 길이, 긴 길이를 구분하여 리스트를 생성한다.
  2. 두 리스트에서 가장 큰 값을 곱한 값을 지갑의 크기로 한다.

📌 풀이


💻 코드

def solution(sizes):
    short = []
    long = []
    
    for i in sizes:
        if i[0]>i[1]:
            long.append(i[0])
            short.append(i[1])
        else:
            short.append(i[0])
            long.append(i[1])
        
    SL = max(short) # short length
    LL = max(long) # long length
    
    return SL*LL

0개의 댓글