반응형
당분간은 파이썬만 풀어보려고 한다.
프로그래머스의 최소직사각형을 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 스타일로 짜게 되는 것 같다 ㅎㅎㅎ
다시 공부를 시작하는 동기부여가 된 코드다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 두 개 뽑아서 더하기 Python Code (0) | 2022.08.27 |
---|---|
[프로그래머스] 3진법 뒤집기 Python Code (1) | 2022.08.27 |
[프로그래머스] 나머지가 1이 되는 수 찾기 Python Code (0) | 2022.08.23 |
[프로그래머스] 2016년 Python Code (0) | 2022.08.20 |
[프로그래머스] 성격 유형 검사하기 Python Code (0) | 2022.08.19 |
댓글