반응형
https://www.acmicpc.net/problem/1026
- 문제
- 문제 풀이
백준 1026번 보물은 실버 4 난이도의 sorting을 이용해서 푸는 문제이다.
이 문제에는 배열 A, B가 있고 배열 B는 그대로 둔 채 배열 A를 재배치해서 S = A[0] * B[0] + ... + A[N-1] * B[N-1]가 최소값이 되게 하면 된다.
이 문제 풀이는 되게 간단하다. Arrays.sort() 메서드를 이용해서 배열 A, B를 증가하는 배열로 만든다.
Arrays.sort(A);
Arrays.sort(B);
그러면 A[0]은 최소값, B[N-1]은 최대값이 될거다. 최소값이랑 최대값들끼리 곱해준 다음에 더해주면 답이 되겠다.
- 코드
import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
import java.util.*;
import java.io.*;
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());
StringTokenizer stk = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
A[i] = Integer.parseInt(st.nextToken());
B[i] = Integer.parseInt(stk.nextToken());
}
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.print(sum);
}
}
- 후기
되게 간단한 수학 문제였던거 같다. 백준에 수학 문제가 많으니 앞으로 수학 문제들도 많이 풀어봐야 될거 같다.
반응형
'백준' 카테고리의 다른 글
[백준] 1475번 : 방 번호 – JAVA [자바] (0) | 2022.03.24 |
---|---|
[백준] 15828번 : Router – JAVA [자바] (0) | 2022.03.23 |
[백준] 9656번 : 돌 게임 2 – JAVA [자바] (0) | 2022.03.22 |
[백준] 11899번 : 괄호 끼워넣기 – JAVA [자바] (0) | 2022.03.22 |
[백준] 9655번 : 돌 게임 – JAVA [자바] (0) | 2022.03.21 |
댓글