[백준] 보물 1026번 - Java

GoshK·2022년 2월 16일
0

[백준] Java

목록 보기
30/49
post-thumbnail

[백준] 보물 1026번

나의 풀이

public class Treasure {
    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];
        Integer[] B = new Integer[N];
        StringTokenizer 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());
        }

        int sum = 0;
        Arrays.sort(A);
        Arrays.sort(B, Collections.reverseOrder());

        for(int i = 0; i < N; i++) {
            sum += A[i] * B[i];
        }

        System.out.println(sum);
    }
}
  • B배열은 정렬을 하면 안된다고 나와있어서 어떻게 하는거지 하고 풀이를 보니 정렬을 해도 상관이 없었다...
  • A는 오름차, B는 내림차 순으로 정렬을 하여 각 인덱스의 값끼리 곱해서 더해주면 가장 작은 값을 구할 수 있다.

0개의 댓글