PS/프로그래머스

최소직사각형 (lv1)

ForteQook 2022. 7. 4. 15:34

 명함을 가로 세로를 바꿔서 지갑에 넣을 수 있기 때문에, 지갑의 방향을 고정하고 카드의 방향만 바꿔가면서 최적의 지갑 크기를 계산하면 된다. 여기서 주목 해야할 부분은 지갑의 방향을 고정했다는 점인데, 즉 카드의 가로 세로 길이를 서로 바꿀 때 어느쪽에 더 큰 값을 넣을지 기준을 정해야한다는 뜻이다.


코드

before

def solution(sizes):
    row = []
    col = []
    for card in sizes:
        if card[0] > card[1]:
            row.append(card[0])
            col.append(card[1])
        else :
            row.append(card[1])
            col.append(card[0])
    return max(row) * max(col)

after

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

 같은 접근이지만, 아래 코드는 내가 쓴 수식을 한줄로 표현했다. 파이썬스러움을 익혀나가는 과정이란...

'PS > 프로그래머스' 카테고리의 다른 글

[1차] 다트 게임 (lv1)  (0) 2022.07.08
[1차] 비밀지도 (lv1)  (0) 2022.07.08
2016년 (lv1)  (0) 2022.07.04
약수의 개수와 덧셈 (lv1)  (0) 2022.07.04
3진법 뒤집기 (lv1)  (0) 2022.07.04