티스토리 뷰

728x90

https://programmers.co.kr/learn/courses/30/lessons/86491?language=python3 

 

코딩테스트 연습 - 최소직사각형

[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

programmers.co.kr

 

  • 해설 :

명함을 수납할 수 있는 지갑을 만들기 위해 조사한 명함들의 가로, 세로 길이들이 주어진다. 이 길이들을 모든 명함을 수납할 수 있는 명함지갑의 최소 사이즈를 찾으면 된다. 

 

 

 

  • 풀이 :

명함을 수납할 때 옆으로 돌려서 수납할 수 있는 경우, 즉 가로와 세로의 길이가 바뀌어 보관하는 경우가 있기 때문에 가로와 세로 길이를 잘 조정해야 했다. 가로나 세로중 아무곳이나 선택하여 각 명함들의 가로와 세로 길이들중 큰 값은 모두 가로로, 작은 값은 모두 세로로 정렬하고 이 때 가로와 세로의 최댓값을 곱하면 된다.

 

 

 

 

1
2
3
def solution(sizes):
        
    return max([w if w > h else h for w,h in sizes]) * max([h if w > h else w for w,h in sizes])
cs
320x100
댓글
© 2022 WonSeok, All rights reserved