https://www.acmicpc.net/problem/1026
문제 해결을 위한 과정
이 문제는 단순한 그리디 알고리즘 문제입니다. 각각의 배열의 원소들을 곱한 후 합을 의미하는 S가 가장 작으려면
a 리스트의 가장 작은 값과 b 리스트의 가장 큰 값을 곱한 후 각각의 배열의 원소들을 곱한 후 합하면 됩니다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
|
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort(reverse = True)
sum = 0
for i in range(n):
sum += (a[i] * b[i])
print(sum)
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 1789번: 수들의 합 (Python) (0) | 2022.01.03 |
---|---|
백준 알고리즘 10610번: 30(Python) (0) | 2022.01.03 |
백준 알고리즘 1010번: 다리 놓기 (Python) (0) | 2021.12.27 |
백준 알고리즘 1463번: 1로 만들기 (Python) (0) | 2021.12.27 |
백준 알고리즘 13549: 숨바꼭질 3(Python) (0) | 2021.02.25 |