두 배열에서 숫자를 하나씩 골라 두 수를 곱한 값의 누적 합이 최솟값을 갖도록 구하는 문제다.
한 배열의 최솟값과 다른 배열의 최댓값을 차례로 계산한다.
def solution(A,B):
answer = 0
A.sort()
B.sort(reverse = True)
for i in range(len(A)):
answer += A[i] * B[i]
return answer
곱한 값의 누적 합의 최솟값
은 각 배열의 최솟값 최댓값을 곱해주어 구할 수 있다.sum()
, zip()
def solution(A,B):
return sum(a*b for a, b in zip(sorted(A), sorted(B, reverse=True)))