input
가로세로 쌍
output
최소 직사각형 크기
하나하나 돌면서 확인했지만 더 쉬운풀이가 있었음.
문제가 어떤 풀이법을 요구하는지 많이 생각해보고 코드를 짜자.
나의 풀이 (하나빼고 통과ㅠㅠ)
def solution(sizes): w, h = [], [] for i in sizes: w.append(i[0]) h.append(i[1]) w_max = max(w) h_max = max(h) for i in range(len(w)): if w[i] == h[i] == h_max: return h_max * h_max if w_max >= h_max: h_max = 0 for i in range(len(w)): if w[i] > h[i] > h_max: h_max = h[i] elif h[i] > w[i] > h_max: h_max = w[i] elif w_max < h_max: w_max = 0 for i in range(len(w)): if h[i] > w[i] > w_max: w_max = w[i] elif w[i] > h [i] > w_max: w_max = h[i] return h_max * w_max
모범코드1
def solution(sizes): w = [] h = [] for size in sizes: if size[0] >= size[1]: w.append(size[0]) h.append(size[1]) else: h.append(size[0]) w.append(size[1]) return max(w) * max(h)
모범코드2
def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in sizes)