나의 풀이
def solution(sizes):
for i in sizes :
if i[0] < i[1] :
tmp = i[1]
i[1] = i[0]
i[0] = tmp
max_width = max(sizes)[0]
max_height = max(sizes, key=lambda x:x[1])[1]
return max_width * max_height
가로, 세로 길이 중 더 큰 값을 가로가 되도록 변경한다.
그런다음 가로 중에 가장 큰 값, 세로 중에 가장 큰 값을 곱한 값이 사이즈가 되도록 리턴한다.
다른 풀이
def solution(sizes):
return max(max(x) for x in sizes) * max(min(x) for x in sizes)
가로, 세로 중에 큰 값을 고르고, 그 중 가장 큰 값을 고른다.
가로, 세로 중에 작은 값을 고르고, 그 중 가장 큰 값을 고른다.
둘의 곱이 사이즈가 된다.
def solution(sizes):
max_width = 0
max_height = 0
for a,b in sizes :
if a < b :
a, b = b, a
max_width = max(max_width, a)
max_height = max(max_height, b)
return max_width * max_height
sizes 전체에서 max_width, max_height 를 찾는 것은 시간이 오래 걸리므로,
for문 한 번을 돌 때마다 기존의 max값과 비교하여 더 크다면 갱신하는 방법이다.
'알고리즘 > 완전탐색' 카테고리의 다른 글
[프로그래머스] 모음사전 - 파이썬(python) (0) | 2022.09.07 |
---|---|
전력망을 둘로 나누기 - 파이썬(python) (0) | 2022.09.07 |
[프로그래머스] 피로도 - 파이썬(python) (0) | 2022.09.07 |
[프로그래머스] 소수 찾기 - 파이썬(python) (0) | 2022.09.07 |
[프로그래머스] 모의고사 - 파이썬(python) (0) | 2022.09.06 |
댓글