본문 바로가기
프로그래밍/알고리즘 & 자료구조

[프로그래머스] 최소 직사각형 with 파이썬

by Play_With 2023. 12. 19.
반응형

프로그래머스 최소 직사각형

 

리스트 안의 값들을 비교해 최대값을 찾는 것으로 

1. 하나씩 비교하여 변수에 업데이트하거나 2. 최대값, 최소값 함수를 사용하거나, 3. heapq를 사용할 수 있다.

 

1. 하나씩 비교하여 변수에 업데이트

def solution(s):
    w,h=0,0              # 최대값을 비교하고 최대값에 해당하면 저장하는 변수
    for x, y in s:
        if x < y :
            x, y = y, x
        if w<x : w=x
        if h<y : h=y
    return w*h

 

2. 최대값, 최소값 함수 사용

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

 

3. heapq 사용

def solution(sizes):
    import heapq
    mq_w, mq_h = [], []
    for w,h in sizes:
        if w < h: w, h = h, w
        heapq.heappush(mq_w, -w)
        heapq.heappush(mq_h, -h)
    return mq_w[0] * mq_h[0]

 

반응형

댓글