/////////
Search
1️⃣

최소직사각형

(30분)

1. 접근방식

1.
문제의 관건 : 어떤 명함을 뒤집을 것인가? > 가로값 중 최대값 * 세로값 중 최대값
2.
2차원 배열의 원소들을 모두 뽑아서 하나의 리스트로 나열한다
3.
크기 = [i]/2 값 * [i]값.

2. 기본 코드에 대한 설명

1차 시도
def solution(sizes): #sizes : [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] answer = [] for i in sizes: for j in i: answer.append(j) answer.sort() #answer : [3,5,7,7,8,10,12,14,15,15] ind = (len(answer) // 2 ) -1 #리스트의 원소 개수는 항상 짝수이다. num = max(answer) * answer[ind] return num
Python
복사
결과

3. 추가적으로 개선한 코드에 대한 설명

1.
2차원 배열의 원소를 하나로 합쳐 오름차순 정렬 후, 두 개로 나눈다.
2.
두 배열의 max 값 곱하기
def solution(sizes): #sizes : [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] answer = [] for i in sizes: for j in i: answer.append(j) answer.sort() #answer : [3,5,7,7,8,10,12,14,15,15] array1 = answer[:len(answer)//2] array2 = answer[(len(answer)//2):] return array1[-1] * array2[-1]
Python
복사
⇒ 같은 문제 발생. ???

4. 사용 라이브러리 정리

-

5. 기타

-