09009

[프로그래머스 lv1] 최소 직사각형 본문

Algorithm/완전탐색
[프로그래머스 lv1] 최소 직사각형
09009

문제 보기

https://school.programmers.co.kr/learn/courses/30/lessons/86491

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

소스 코드

def solution(sizes):
    for i in range(len(sizes)-1):
        tmp_a = max(sizes[i][0], sizes[i+1][0])
        tmp_b = max(sizes[i][1], sizes[i+1][1])
        
        tmp_a_1 = max(sizes[i][0], sizes[i+1][1])
        tmp_b_1 = max(sizes[i][1], sizes[i+1][0])
        
        if tmp_a * tmp_b > tmp_a_1 * tmp_b_1:
            sizes[i+1][0], sizes[i+1][1] = tmp_a_1, tmp_b_1
        else:
            sizes[i+1][0], sizes[i+1][1] = tmp_a, tmp_b
            
    return sizes[-1][0] * sizes[-1][1]

 

개선 코드

def solution(sizes):
    return max(max(x) for x in sizes) * max(min(x) for x in sizes)

 

'Algorithm > 완전탐색' 카테고리의 다른 글

[백준 15649] N과 M (1)  (0) 2023.12.20
*** [프로그래머스 lv2] 피로도  (0) 2023.10.10