처음 생각
문제에 나온대로 배열 B 를 손대지 않고 배열 A 를 재배열해서 풀려고 했는데 너무 어려워서
원래 이렇게 어려운 난이도인가 하고 생각했는데
알아보니까 배열 B 랑 A, 정렬해서 푸는 문제더만!!
=ㅅ= 이런 표정으로 A 는 오름차순, B 는 내림차순하고, 반복문 안에서 곱하고 더해서 리턴했다
내가 푼 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;
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());
Integer[] A = new Integer[N];
Integer[] B = new Integer[N];
Integer total =0;
StringTokenizer st;
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());
}
Arrays.sort(A);
Arrays.sort(B, Collections.reverseOrder());
for(int i=0; i<N; i++) {
total += A[i]*B[i];
}
System.out.println(total);
}
}
** 너무 예전에 공부해서 까먹고 있었는데
배열을 내림차순으로 정렬하고자 할 때 Collections.reverseOrder() 을 사용하는데
이때는 정렬하고자 하는 배열의 타입이 primitive 타입이면 안된다
그래서 int 배열이면 Integer 타입으로 바꾸든지 해야한다
'백준 풀이' 카테고리의 다른 글
[백준 풀이_Java] 1316 그룹단어 체커 (0) | 2021.10.27 |
---|---|
[백준 풀이_Java] 1946 신입사원 (0) | 2021.10.23 |
[백준 풀이_Java] 1463 1로 만들기 (0) | 2021.10.19 |
[백준 풀이_Java] 5585 거스름돈 (0) | 2021.09.02 |
[백준 풀이_Java] 15881 Pen Pineapple Apple Pen (0) | 2021.08.29 |