카테고리 없음
BOJ[JAVA] 1026 보물
양갱이요
2023. 4. 9. 19:48
https://www.acmicpc.net/problem/1026
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
import java.io.*;
import java.util.*;
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]; // 배열 A
int[][] B = new int[N][2]; // 배열 B
int[] temp = new int[N]; // S 값을 최소로 만들기 위해 정렬한 A 배열
// A, B 배열에 숫자 저장
for(int i=0;i<2;i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j=0;j<N;j++) {
if(i==0) {
A[j] = Integer.parseInt(st.nextToken());
}
else {
B[j][0] = j; // 인덱스 저장
B[j][1] = Integer.parseInt(st.nextToken());
}
}
}
Arrays.sort(A); // A 배열 오름차순으로 정렬
Arrays.sort(B, new Comparator<int[]> () { // B 배열을 숫자 기준으로 내림차순 정렬
@Override
public int compare(int[] o1, int[] o2) {
return o2[1]-o1[1];
}
});
int ans = 0; // S의 최솟값
for(int i=0;i<N;i++) { // A 배열의 작은 값과 B 배열의 큰 값을 매치
temp[B[i][0]] = A[i];
ans += A[i]*B[i][1];
}
System.out.println(ans);
}
}