본문 바로가기

프로그래머스

31)최소직사각형

문제

모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성하기

 

조건

아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.

가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다.

하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다.

이때의 지갑 크기는 4000(=80 x 50)입니다.

 

제한사항

sizes의 길이는 1 이상 10,000 이하입니다.

> sizes의 원소는 [w, h] 형식입니다.

> w는 명함의 가로 길이를 나타냅니다.

> h는 명함의 세로 길이를 나타냅니다.

> w와 h는 1 이상 1,000 이하인 자연수입니다.

 

문제풀이

def solution(sizes):
    answer = 0
    row=0
    col=0
    
    for a, b in sizes:
        if a < b:
            a, b = b, a
    
        row=max(row, a)
        col=max(col, b)
    
    answer=row*col
    
    return answer

'프로그래머스' 카테고리의 다른 글

33)비밀지도  (0) 2021.11.15
32)다트 게임  (0) 2021.11.15
30)나머지가 1이 되는 수 찾기  (0) 2021.11.12
29)부족한 금액 계산하기  (0) 2021.11.12
28)가운데 글자 가져오기  (0) 2021.11.12