반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
명함을 하나씩 회전해보면서 회전했을 때 필요한 지갑 너비가 더 작아지는 경우에만 회전시킴.
다른분들 코드 보니까 모든 명함을 돌면서 가로, 세로 중 작은 값들을 모아 가장 큰 값을 구하고
남은 가로, 세로 중 큰값들을 모아 가장 큰값을 구하여 곱해주는 한줄 코드도 있더라..ㄷㄷ
우리는 지갑의 최소 넓이가 필요한 것이기 때문에, 이러한 코드로 간결하게 정리할 수 있다.
코드
def solution(sizes):
max_w, max_h = 0, 0
for i in range(len(sizes)):
rotate_w = sizes[i][1]
rotate_h = sizes[i][0]
w, h = sizes[i]
if max(max_w, w) * max(max_h, h) > max(max_w, rotate_w) * max(max_h, rotate_h):
w = rotate_w
h = rotate_h
max_w = max(max_w, w)
max_h = max(max_h, h)
return max_w * max_h
반응형
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스] lv.1 햄버거 만들기 python 풀이 시간초과 해결 (0) | 2023.10.26 |
---|---|
[프로그래머스] lv.1 콜라 문제 python 풀이 (0) | 2023.10.24 |
[프로그래머스] lv.1 모의고사 python 풀이 (0) | 2023.10.24 |
[프로그래머스] lv.1 추억 점수 python 풀이 (0) | 2023.10.23 |
[프로그래머스] lv.1 이름이 없는 동물의 아이디 sql 풀이 (0) | 2023.10.23 |