나의 풀이
enumerate
함수로 input을 쪼개주고 각 케이스별로 최대/최소를 각각 따져주었다. 다만 어떤건 가로가 길고 어떤 건 세로가 더 길기 때문에 모두 가로가 더 길도록 정렬해주는 작업이 추가로 필요했다.
def solution(sizes):
max_w, max_h = 0, 0
for _, wh in enumerate(sizes):
w,h = max(wh),min(wh)
if w > max_w:
max_w = w
if h > max_h:
max_h = h
return max_w * max_h
고수의 풀이
def solution(sizes):
return max(max(x) for x in sizes) * max(min(x) for x in sizes)
다른 분들의 풀이를 구경했는데, 두줄로 끝내버린 분들도 계셨다. input으로 들어오는 값들 중에 큰 값의 최댓값과, 작은 값의 최댓값의 곱이 곧 정답이기에 위처럼 풀 수도 있다. 하지만 메모리 사용량이 늘어나서 과연 좋은 풀이인지에 대해서는 생각해볼 필요가 있다.