BOJ 1026 보물

less than 1 minute read

  1. 변수

    int N // 숫자의 개수
    int[] A // A의 숫자들의 집합
    int[] B // B의 숫자들의 집합
    
  2. 로직

    • A를 오름차순, B를 내림차순으로 정렬(합을 최소값으로 만들기 위해서)
  3. 코드

package com.ssafy;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOJ_1026_보물 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		int N = Integer.parseInt(br.readLine());
		
		int[] A = new int[N];
		st = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; i++) {
			A[i] = Integer.parseInt(st.nextToken());
		}
		
		int[] B = new int[N];
		st = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; i++) {
			B[i] = Integer.parseInt(st.nextToken());
		}

		Arrays.sort(A);
		Arrays.sort(B);
		
		int ans = 0;
		for (int i = 0; i < N; i++) {
			ans += A[i] * B[N - i - 1];
		}
		System.out.println(ans);
	}

}

Tags:

Categories:

Updated:

Leave a comment