알고리즘/프로그래머스

[파이썬] 프로그래머스_최소직사각형

딱따구르리 2022. 2. 23. 20:47
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


 

해설

 

이 문제는 가로, 세로에 사로잡히지 않는게 좋다.

명함을 가로로 눕히든 세로로 세우든 지갑에 넣기만 하면 되기 때문에

각 가로, 세로 값을 정렬해서 큰 값을 가로로 / 작은 값을 세로로 두면 된다.

 

그 후, 가로 값, 세로 값 중에서 가장 큰 값을 골라 그 둘을 곱해주기만 하면 된다.

 

나는 sizes 배열에서 w,h 배열을 하나씩 꺼내 w_max, h_max보다 값이 크면 각각의 값을 변경해주는 방법을 사용했다.

 


코드

 

-파이썬

#프로그래머스 86491(최소직사각형)

def solution(sizes):
    w_max = 0
    h_max = 0

    for i in sizes:
        i.sort()
        for j in range(1):
            if i[j] > w_max:  #가로
                w_max = i[j]
            if i[j+1] > h_max:  #세로
                h_max = i[j+1]

    answer = w_max * h_max

    return answer

print(solution([[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]]))
728x90
반응형