백준
1026번: 보물
bingual
2022. 2. 16. 12:26
반응형
풀이
a는 오름차 순으로, b는 내림차순으로 정렬한뒤 a * b를 한값을 더하면된다.
자바
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] a = new int[n];
int[] b = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
a[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
b[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(a);
Arrays.sort(b);
int sum = 0;
for (int i = 0; i < n; i++) {
sum += a[i] * b[n-i-1];
}
System.out.print(sum);
}
}
파이썬
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort()
b.reverse()
sum = 0
for i in range(n):
sum += a[i] * b[i]
print(sum)