-
[백준]1026. 보물 (java, python)알고리즘/백준 2021. 4. 20. 02:07
📄 링크
💡 문제 분석
S를 가장 작게 만들기 위해서는 B배열의 가장 큰 수를, A배열의 가장 작은 수와 매칭해서 곱하면 됩니다
A와 B를 정렬해서, A는 작은 수부터, B는 큰 수부터 곱해나갑니다.
⌨️ 코드
JAVA
import java.util.Arrays; import java.util.Scanner; public class Q1026 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; int[] b = new int[n]; for(int i = 0; i < n; i++) a[i] = sc.nextInt(); for(int i = 0; i < n; i++) b[i] = sc.nextInt(); Arrays.sort(a); Arrays.sort(b); int ret = 0; for(int i = 0; i < n; i++) ret += a[i] * b[n - 1 - i]; System.out.println(ret); } }
PYTHON
input() print(sum(a * b for a, b in zip(sorted(map(int, input().split())), sorted(map(int, input().split()), reverse=True))))
'알고리즘 > 백준' 카테고리의 다른 글
[백준]1699. 제곱수의 합 (Java) (0) 2021.08.08 [백준]1037. 약수 (java, python) (0) 2021.04.20 [백준]1021. 회전하는 큐 (java, python) (0) 2021.04.20 [백준]1018. 체스판 다시 칠하기 (java, python) (0) 2021.04.20 [백준]1016. 제곱 ㄴㄴ수 (java, python) (0) 2021.04.19