본문 바로가기

알고리즘 & 코딩테스트/코딩테스트

Programmers Lv.1 "최소직사각형"

Programmers Lv.1 최소직사각형, 완전탐색, 정답률

문제를 잘 읽어보면 주어진 가로길이의 최댓값, 세로길이의 최댓값을 선택하는 단순한 문제가 아님을 알 수 있다. 즉, 각 명함의 크기가 가로, 세로의 전환도 고려해야한다는 것. 가장 심플한 해결방법은 주어진 sizes를 반복을 하되 큰값을 가로와 세로 중 어디로 할 것인지 임의로 정한뒤 순차적으로 비교하여 최대의 수치를 저장해주면 된다. 아래 코드를 보면 이해가 될 것이다.

def solution(sizes):
    w = 0
    h = 0
    for element in sizes:
        if element[0] > element[1]:
            element[0], element[1] = element[1], element[0]
        if element[0]>w:
            w = element[0]
        if element[1]>h:
            h = element[1]
    return w*h