반응형
단, B에 있는 수는 재배열하면 안된다. 라는 문구가 있는데 실제 구현을 할때는 정렬로 재배열을 해줘야 한다.
예를 들어 1 2 3 4 5인 A 배열과 1 3 5 7 9 인 B 배열이 있을 때 가장 작은 수가 나올 경우는
서로 역방향이 되어 큰값과 작은값이 곱해질 때이다. 정확히 1*9 + 2*7 + 3*5 + 4*3 + 5*1인 경우이다.
결국, A 배열과 B배열을 정렬한 다음 A와 B의 역방향으로 곱해주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub 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 sum = 0; for (int i = 0; i < n; i++) { sum += A[i] * B[n - 1 - i]; } System.out.println(sum); } } |
반응형
'나는요 공부가 좋....은걸... > 알고리즈음' 카테고리의 다른 글
[BOJ] 백준 10989 - 수 정렬하기 3 (자바) (3) | 2018.01.08 |
---|---|
[BOJ] 백준 1182 - 부분집합 (자바) (0) | 2017.12.05 |
[BOJ] 백준 7785 - 회사에 있는 사람 (자바) (1) | 2017.11.20 |
[BOJ] 백준 10828 - 스택 (자바) (0) | 2017.11.20 |
[BOJ] 백준 10845 - 큐 (자바) (0) | 2017.11.20 |