본문 바로가기
프로그래밍/알고리즘

프로그래머스 - 최소직사각형 파이썬

by 숙님 2023. 8. 2.
728x90

1. 문제

 

2. 코드

첫번째 방법 

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

 

두번째 방법 

solution = lambda sizes: max(sum(sizes, [])) * max(min(size) for size in sizes)

 

세번째 방법 

def solution(sizes):
    row = 0
    col = 0
    for a, b in sizes:
        if a < b:
            a, b = b, a
        row = max(row, a)
        col = max(col, b)
    return row * col

 

네번째 방법 

def solution(sizes):
    w = []
    h = []
    for i in range(len(sizes)):
        if sizes[i][0] >= sizes[i][1]:
            w.append(sizes[i][0])
            h.append(sizes[i][1])
        else:
            h.append(sizes[i][0])
            w.append(sizes[i][1])

    return max(w) * max(h)

처음에 이렇게 풀었는데 첫번째 풀이처럼 효율적인 방법이 있을것이라고 예상했다 ㅎㅎ

댓글