반응형
프로그래머스(programmers) 최소직사각형 python 정답 [완전 탐색]
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 정답
입출력 예
sizes | result |
[[60, 50], [30, 70], [60, 30], [80, 40]] | 4000 |
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] | 120 |
[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] | 133 |
정답 코드
def solution(sizes):
return max(map(max,sizes)) * max(map(min,sizes))
문제 해설
아래와 같은 직사각형들이 있다 가정하자.
세로(혹은 한 변)이 최대인 직사각형이 있다.
다른 직사각형들의 가장 긴 한 변을 해당 변 쪽으로 정렬할 수 있을 것이다.
긴 변들을 한 쪽으로 정렬하여 겹쳐보았다.
작은 변들을 겹쳐둔 곳을 보니(가로 또는 다른 한변)
작은 변들의 최대값이 전체를 둘러싸는 직사각형의 너비를 결정할 것 같다.
따라서 긴변의 최대값괴 작은변의 최대값을 곱하면 (max(map(max,sizes)) * max(map(min,sizes))) 정답이 된다.
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스(programmers) 소수찾기 python 정답 [완전 탐색] (1) | 2023.02.20 |
---|---|
프로그래머스(programmers) 모의고사 python 정답 [완전 탐색] (0) | 2023.02.19 |
프로그래머스(programmers) 단속카메라 python 정답 [Greedy Algorithm] (0) | 2023.02.19 |
프로그래머스(programmers) 섬 연결하기 python 정답 [Greedy Algorithm] (0) | 2023.02.19 |
프로그래머스(programmers) 구명보트 python 정답 [Greedy Algorithm] (0) | 2023.02.19 |