문제풀이/Programmers

[프로그래머스][Lv1][Python] 최소직사각형

서채리 2022. 2. 11. 20:48

[문제]

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

 

[풀이]

각 직사각형 가로 세로 값 통틀어 큰 수들 중 가장 큰 수, 작은 수들 중 가장 큰 수를 구하면 된다.

문제에 나온 예로 구해보자면 _max 리스트와 _min 리스트를 선언한 후 [60, 50] 중 큰 값인 60을 max에, 작은 값인 50을 min에 담는다. 앞에 설명한 방법과 같이 모든 명함의 값을 정리하면 _max = [60, 70, 60, 80], _min = [50, 30 , 30, 40]이 된다. 최소 직사각형 값은 _max 리스트의 max 값인 80, _min 리스트의 max 값인 50이 된다.

 

위 코드를 압축하면 큰 수들 중 가장 큰 수는 max(max(i) for i in sizes) , 작은 수들 중 가장 큰 수는 max(min(i) for i in sizes) 이다.

 

[코드]

def solution(sizes):
    return max(max(i) for i in sizes) * max(min(i) for i in sizes)