[문제]
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)
'문제풀이 > Programmers' 카테고리의 다른 글
[프로그래머스][Lv1][Python] 하샤드 수 (0) | 2022.02.17 |
---|---|
[프로그래머스][Lv1][Python] 모의고사 (0) | 2022.02.11 |
[프로그래머스][Lv1][Python] k번째 수 (0) | 2022.02.10 |
[프로그래머스][Lv1][Python] 예산 (0) | 2022.02.10 |
[프로그래머스][Lv1][Python] 체육복 (0) | 2022.02.10 |