본문 바로가기
Coding Test/Python

[프로그래머스] 최소 직사각형 Python Code

by giem 2022. 8. 27.
반응형

 

 

당분간은 파이썬만 풀어보려고 한다.

 

프로그래머스의 최소직사각형을 Python으로 풀어보겠다.


문제

문제는 이렇다.

매우 쉬워보이지만 함정은 명함을 돌려서 수납할 수 있다는 것이다.


구현

구현은 생각만 쉽게 한다면(?) 쉽게 구현할 수 있다.

w, h를 구분하지 말고 큰 것을 maxbig, 작은 것을 maxsmall로 두고

비교하며 업데이트 하면 된다.

 

w, h를 구분하다가는 로직이 어려운 문제가 될 수 있다.


코드
def solution(sizes):
    answer = 0
    maxbig =0
    maxsmall =0

    for w, h in sizes:
        if h > w:
            maxbig = max(maxbig, h)
            maxsmall = max(maxsmall, w)
        else:
            maxbig = max(maxbig, w)
            maxsmall = max(maxsmall, h)

    return maxbig*maxsmall

생각을 풀어서 쓰다 보니 코드가 살짝 지저분하다.

 

다른 사람의 풀이를 보겠다.


다른 풀이
def solution(sizes):
    return max(max(x) for x in sizes) * max(min(x) for x in sizes)

'이것이 파이썬이다' 의 정석적인 코드인 것 같다.

가독성도 좋고 라인 수도 짧다.

 

각 size에서 큰값의 max와 작은 값의 max를 곱하는 로직이다.

공부를 잠깐 쉬고 업무를 하니 Go 스타일로 짜게 되는 것 같다 ㅎㅎㅎ

다시 공부를 시작하는 동기부여가 된 코드다.

반응형

댓글