Development/PS

[완전 탐색] 프로그래머스 level 1 최소직사각형 python 풀이

bezzang_kim 2023. 9. 13. 19:02
무식해 보여도 사실은 최고의 방법일 때가 있지요.

완전 탐색?

모든 가능한 경우의 수를 시도하여 원하는 결과를 찾는 알고리즘 기법.

브루트 포스(Brute Force)라고도 함.

경우의 수가 많거나 입력 크기가 큰 경우에는 계산 비용이 높아질 수 있다.

완전 탐색은 작은 규모의 문제나 기준이 명확한 경우에 유용함.

 

해결 흐름

1. 가로나 세로 중에서 가장 큰 값이 다음 직사각형의 가로나 세로 값보다 작으면 교체 -> 즉 가장 큰 값을 찾아야함

2. 만약 가로 값이 가장 큰 값 일때, 세로 값도 다른 직사각형의 세로 값보다 커야함 -> 즉 작은 값들중 가장 큰 값을 찾아야함

3. 직사각형들 중에서 하나의 직사각형 가로나 세로중 더 큰 값들 중에 가장 큰 값 * 작은 값들 중에서 큰 값

 

코드

def solution(sizes):
    max_value = max(max(size[0], size[1]) for size in sizes)
    min_value = max(min(size[0], size[1]) for size in sizes)
    return max_value * min_value