문제📖
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F7e53d304-28cf-43d4-b13e-c7d328734a02%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-23%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%209.47.50.png)
풀이🙏
- 길이가 같은 배열 A,B 두개가 있다. 각 배열은 자연수로 이루어져 있다.
- 배열 A,B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한다.
- 이러한 과정을 배열의 길이만큼 반복하여, 두 수를 곱한 값을 누적하여 더한다.
- 이 때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표이다.
- 단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 다시 해당 숫자는 뽑을 수 없다.
- 배열 A,B가 주어질 때 최종적으로 누적된 최솟값을 return 하는 solution 함수를 완성하라.
코드💻
def solution(A,B):
A = sorted(A)
B = sorted(B, reverse=True)
answer = 0
for i in range(len(A)):
answer += A[i]*B[i]
return answer
결과😎
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F5bd0ebfb-b3fc-4d46-aea2-8a1264df22e1%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-23%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2010.33.12.png)
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F74d93752-9be0-4736-b0df-9629b1caf150%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-23%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2010.12.41.png)
출처 && 깃허브📝
programmers
github