https://www.acmicpc.net/problem/1026
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
문제 해결을 위한 과정
이 문제는 단순한 그리디 알고리즘 문제입니다. 각각의 배열의 원소들을 곱한 후 합을 의미하는 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 |