배열의 길이 = 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)
'백준 알고리즘 (Baekjoon Algorithm)' 카테고리의 다른 글
[파이썬] 백준 알고리즘 No.1946 신입 사원 (0) | 2021.12.05 |
---|---|
[파이썬] 백준 알고리즘 No.10610 30 (0) | 2021.12.05 |
[파이썬] 백준 알고리즘 No.2217 로프 (0) | 2021.12.05 |
[파이썬] 백준 알고리즘 No.1759 암호 만들기 (0) | 2021.12.03 |
[파이썬] 백준 알고리즘 No.1966 프린터 큐 (0) | 2021.03.07 |