

case 1
문제와 동일
case 2
가장 긴 가로, 세로가 14, 15이므로 210의 지갑을 만들어야 한다. 하지만 4번 명합을 가로로 눕혀 수납하면 12 x 15 = 180, 2번 명함을 눕히면 10 x 15 = 150, 1번 명함을 눕히면 8 x 15 = 120이다. 1번 명함의 크기가 다른 명함보다 크다는 특징이 있다.
case 3
case 2와 같은 방법으로 적절히 명함을 수납하면 19 x 7 = 133이다.
위를 기반으로 알고리즘을 세우면 다음과 같다.
- 명함의 짧은 길이, 긴 길이를 구분하여 리스트를 생성한다.
- 두 리스트에서 가장 큰 값을 곱한 값을 지갑의 크기로 한다.
def solution(sizes):
short = []
long = []
for i in sizes:
if i[0]>i[1]:
long.append(i[0])
short.append(i[1])
else:
short.append(i[0])
long.append(i[1])
SL = max(short) # short length
LL = max(long) # long length
return SL*LL