🔍 알고리즘/프로그래머스 Python
[Python] 프로그래머스 86491. 최소직사각형 (Lv.1)
탄치
2022. 8. 10. 22:17
https://school.programmers.co.kr/learn/courses/30/lessons/86491#qna
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
명함의 가로, 세로 크기의 최댓값을 포함하도록 지갑의 크기를 정해야 하는데, 명함을 돌릴 수 있으므로 명함의 긴 방향을 일치시키도록 돌리는 아이디어로 풀이할 수 있습니다.
극단적인 예를 들어, 1x10 10x1 두개의 명함을 이 상태대로 담으려면 10x10 사이즈의 지갑이 필요하지만, 하나의 명함을 돌리면 1x10 크기의 지갑에 담을 수 있습니다.
이런 상태를 만들기 위해서 w와 h값 중 한 방향을 정해 긴 쪽이 모두 일치하도록 돌려주고 최댓값을 찾으면 됩니다.
def solution(sizes):
width = 0
height = 0
for size in sizes:
w = size[0]
h = size[1]
if w < h:
temp = h
h = w
w = temp
if w > width:
width = w
if h > height:
height = h
return width * height
728x90