김찬양의 개발일지
21일차. 최소직사각형 본문
링크
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
정답
def solution(sizes):
width = max(map(lambda x:max(x[0], x[1]), sizes))
height = max(map(lambda x:min(x[0], x[1]), sizes))
return width*height
풀이과정
두 수의 합이 같을떄, 두 수를 곱하는 방법중 가장 큰 수를 얻는방법은 두 수가 가장 비슷한것이다.
이 경우 합이 같지는 않지만 최댓값과 최솟값을 곱할 떄 합도 가장 작으면서, 곱 역시 가장 작은경우이다.
max(map(lambda x:max(x[0], x[1]), sizes))
각 항목의 두 값중 큰값들을 map을 이용해서 구하고, 그것에 max를 씌운다.
max(map(lambda x:min(x[0], x[1]), sizes))
또한 다른값은 작은값들을 map을 이용해서 구하고 그 값에도 max를 씌운다.
이렇게 하고 두 수를 곱하면 최솟값이 나온다.
'코딩테스트 > Programmers Level 1' 카테고리의 다른 글
23일차. 부족한 금액 계산하기 (1) | 2023.12.17 |
---|---|
22일차. 없는 숫자 더하기 (0) | 2023.12.16 |
20일차. 나머지가 1이 되는 수 찾기 (0) | 2023.12.13 |
19일차. 신고 결과 받기 (0) | 2023.12.12 |
18일차. 성격 유형 검사하기 (1) | 2023.12.12 |