def solution(A,B):
answer = 0
a_list = sorted(A)
b_list = sorted(B, reverse=True)
for i in range(len(a_list)):
answer += a_list[i] * b_list[i]
return answer
곱의 합이 최솟값이 되기 위해서는 A의 최솟값, B의 최댓값의 곱의 합 혹은 그 반대가 되어야 한다.
def getMinSum(A, B):
return sum([a * b for a, b in zip(sorted(A), sorted(B, reverse=True))])
zip을 사용하면 한줄로 깔끔하게 작성할 수 있다.
프로그래머스 코딩 테스트 연습