You will be fine

<Algorithm> 37. 1026번 보물

by BFine
반응형

1. 1026번 보물

  • 간단한 정렬 문제, Arrays.sort를 이용해서 a는 0번부터 b는 끝부터 곱해서 더 해주면 된다.

  • 다른방법으로는 Collection을 이용한다. 주의할 점은 Arrays.sort는 오름차순 밖에 할 수 가 없다. 내림차순은 Collections.reverse를 이용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
 
public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int[] a = new int[N];
        int[] b = new int[N];
        
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i ++) {
            a[i] = Integer.parseInt(st.nextToken()); 
        }
        
        List<Integer> list = new ArrayList<Integer>();
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i ++) {
            b[i] = Integer.parseInt(st.nextToken());
            list.add(b[i]);
        }
        Arrays.sort(a);
        Collections.sort(list);
        Collections.reverse(list);
        
        int mul = 0;
        for(int i = 0; i < N; i ++) {
            mul += a[i]*list.get(i);
        }
        System.out.println(mul);
    }
}
cs







반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기