풀이방법
사용된 것:
Arrays.sort
배열의 요소들을 정렬해준다.
2022.01.14
B의 요소들의 순서는 바꿔선 안 된다는 조건은 신경쓰지 말자. 결과만 옳게 나오면 된다. 이거 신경 쓰다가 시간 버렸다.
A를 오름차순으로, B를 내림차순으로 정렬한 뒤 S 함수를 수행하면 최솟값을 구할 수 있다.
코드
Java(2022.01.14)
import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//sort로 역순 정렬을 할 때 int[]는 인자로 받지 못하므로 배열들은 Integer[]로 선언
Integer[] A = new Integer[n];
Integer[] B = new Integer[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, Collections.reverseOrder());
int sum = 0;
for(int i = 0; i<n; i++) {
sum += A[i]*B[i];
}
System.out.print(sum);
sc.close();
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
#6996 : 애너그램 (0) | 2022.01.21 |
---|---|
#4583 : 거울상 (0) | 2022.01.19 |
#15904 : UCPC는 무엇의 약자일까? (0) | 2022.01.19 |
#11656 : 접미사 배열 (0) | 2022.01.14 |
#15889 : 호 안에 수류탄이야!! (0) | 2022.01.13 |