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