Python/CoTe

[programmers] 최소 직사각형

joannekim0420 2022. 2. 21. 20:41
728x90

https://programmers.co.kr/learn/courses/30/lessons/86491

 

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

[[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

 

이 문제는 곱해야하는 W 와 H를 찾는게 가장 중요하다.

회전을 고려한 패턴을 찾아보니, 회전을 한다 생각하고 

1. 모든 직사각형에 대하여 직사각형의 두 변 중, 긴 것을 W, 짧은 것을 H로 바꿔주기

2. 각각 W와 H에서 최대값들을 찾은 후 곱한 값이 답이다.

 

def solution(sizes):
    maxW = 0
    maxH = 0
    for i in range(len(sizes)):
        if sizes[i][0] > sizes[i][1]:
            sizes[i][0], sizes[i][1] = sizes[i][1],sizes[i][0]
        maxW = max(maxW, sizes[i][0])
        maxH = max(maxH, sizes[i][1])
    answer = maxW *maxH
    return answer