문제풀이/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)