백준 알고리즘 (Baekjoon Algorithm)
[파이썬] 백준 알고리즘 No.1026 보물
Universe_lee
2021. 12. 4. 22:42
배열의 길이 = N
정수 배열 A, B
함수 S = A[0] * B[0] + .... + A[N - 1] * B[N - 1]...
즉 A와 B를 순서대로 곱해서 그 값을 누적합 해 최소의 값을 구해내라는 문제이다.
즉 A의 제일 작은 값과 B의 제일 큰 값을 계속해서 연산한다면 최소값이 나올 것 이다.
A의 배열을 오름차순으로, B의 배열을 내림차순으로 정렬한 후 계산해주었다.
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort(reverse = True)
result = 0
for i in range(len(a)):
result += a[i] * b[i]
print(result)