프로그래머스 코딩테스트 고득점 Kit -
완전탐색
- Lv 1. 최소직사각형 (Python)
https://school.programmers.co.kr/learn/courses/30/lessons/86491
def solution(sizes):
answer = 0
# 가로 중 최대값 x 세로 중 최대값 이 제일 작은거 구하기
# 가로 세로 서로 교체 가능
width = []
height = []
# 가로 vs 세로 중 둘 중 작은 수를 우선 가로에 다 배치
for i in sizes:
if(i[0] > i[1]):
i[0], i[1] = i[1], i[0]
width.append(i[0])
height.append(i[1])
# 가로의 최대 x 세로의 최대 구하기
answer = max(width) * max(height)
return answer
가로들의 최대값 * 세로들의 최대값
을 해주면 된다.def solution(sizes):
return max(max(x) for x in sizes) * max(min(x) for x in sizes)
max(x) for x in sizes
→ sizes
배열의 요소들 중 [가로, 세로] 에서 둘 중 큰 값을 구하게 됨sizes
: [[60, 50], [30, 70], [60, 30], [80, 40]], max(x) for x in sizes
: [60, 70, 60, 80]min(x) for x in sizes
→ sizes
배열의 요소들 중 [가로, 세로] 에서 둘 중 작은 값을 구하게 됨sizes
: [[60, 50], [30, 70], [60, 30], [80, 40]], min(x) for x in sizes
: [50, 30, 30, 40]둘 중 더 큰 값들의 최대값 * 둘 중 더 작은 값들의 최대값
이 정답이 된다.