728x90
a, b 배열을 입력받아
Arrays.sort 함수를 이용하여
순서대로 정렬해줍니다.
결과값을 구할때는 a는 정방향으로 b는 역방향으로 곱해주어
더하면 됩니다.
문제에서는 b에 있는 수는 재배열하면 안된다고 했지만
문제에서 요구하는 최소값을 구하기 위해서는
위와 같은 방법이 편하므로 넘어갑니다
만일 문제에서 b배열과 a배열 출력까지 요구할 경우에는
b배열의 크기 순서를 담고 있는 인덱스값의 배열들을 이용하여
a배열을 재배열시켜야합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner (System.in); int N = sc.nextInt(); int[] a = new int[N]; int[] b = new int[N]; int res=0; 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); for(int i=0;i<N;i++) { res+=a[i]*b[N-1-i]; } System.out.println(res); } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 10808번 알파벳 개수 (0) | 2018.04.21 |
---|---|
[백준][Java] 1100번 하얀 칸 (0) | 2018.04.21 |
[백준][Java] 1181번 단어 정렬 (0) | 2018.04.21 |
[백준][Java] 5543번 상근날드 (0) | 2018.04.21 |
[백준][Java] 10872번 팩토리얼 (0) | 2018.04.21 |