반응형
[문제 출처]
https://www.acmicpc.net/problem/1026
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
[문제 풀이]
S의 최솟값을 구하는 문제이다.
S는 정수 배열 A와 B의 각 원소를 곱한 값의 합이다.
S의 값을 작게 하기 위해서는 큰 수는 작은 수와 곱하면 된다.
따라서 두 배열 중 하나는 오름차순으로, 하나는 내림차순으로 정렬하여 곱해준다.
문제에서는 배열 A만 재배열을 해야한다고 하지만 두 배열을 모두 정렬해도 결과는 같고, 같은 과정을 하는 것이므로 상관없다.
#1026
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
b.sort()
a.sort(reverse=True)
result = 0
for i in range(n):
result += (a[i] * b[i])
print(result)
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1094 막대기 (0) | 2023.01.06 |
---|---|
[python/파이썬] 백준 1049 기타줄 (0) | 2023.01.05 |
[python/파이썬] 백준 9625 BABBA (0) | 2023.01.03 |
[python/파이썬] 백준 5622 다이얼 (0) | 2023.01.02 |
[python/파이썬] 백준 25304 영수증 (0) | 2022.12.29 |