[백준] 보물 1026번
나의 풀이
public class Treasure {
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];
Integer[] B = new Integer[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());
}
int sum = 0;
Arrays.sort(A);
Arrays.sort(B, Collections.reverseOrder());
for(int i = 0; i < N; i++) {
sum += A[i] * B[i];
}
System.out.println(sum);
}
}
- B배열은 정렬을 하면 안된다고 나와있어서 어떻게 하는거지 하고 풀이를 보니 정렬을 해도 상관이 없었다...
- A는 오름차, B는 내림차 순으로 정렬을 하여 각 인덱스의 값끼리 곱해서 더해주면 가장 작은 값을 구할 수 있다.