https://school.programmers.co.kr/learn/courses/30/lessons/12941
시도 1
A, B 배열에서 배열길이만큼 A에서 제일 큰수 * B에서 제일 작은수를 돌면서 곱한건 배열에서 삭제했습니다. 효율성 테스트에서 시간초과가 났습니다. 69.6점
1
2
3
4
5
6
7
8
9
10
11
|
def solution(A, B):
length = len(A)
total = 0
for i in range(length):
Max = max(A)
Min = min(B)
A.remove(Max)
B.remove(Min)
total += Max * Min
return total
|
시도 2
A는 내림차순, B는 오름차순으로 먼저 정렬후에 같은 원소 번호끼리 곱해서 더했습니다.
1
2
3
4
5
6
7
|
def solution(A, B):
total = 0
A.sort(reverse = True) # A.reverse()
B.sort()
for i in range(len(A)):
total += A[i] * B[i]
return total
|
다른사람 풀이
1
2
|
def getMinSum(A,B):
return sum(a*b for a, b in zip(sorted(A), sorted(B, reverse = True)))
|