티스토리 뷰

728x90

문제

https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net

 

 

풀이 및 소스코드

 

문제에서는 a의 배열만 재배열하라고 나와있지만

실제로는 a배열 b배열 둘 다 sort 한 뒤 역순으로 곱해서 더해주면 답이 나온다.

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


public class Main {
   public static void main(String[] args) throws IOException {

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      StringTokenizer st;
      int n = Integer.parseInt(br.readLine());
      int[] a_arr = new int[n];
      int[] b_arr = new int[n];
      
      st = new StringTokenizer(br.readLine());
      for(int i=0;i<n;i++) {
    	  a_arr[i] = Integer.parseInt(st.nextToken());
      }
      
      st = new StringTokenizer(br.readLine());
      for(int i=0;i<n;i++) {
    	  b_arr[i] = Integer.parseInt(st.nextToken());
      }
      
      Arrays.sort(a_arr);
      Arrays.sort(b_arr);
      
      int res = 0;
      
      for(int i=0;i<n;i++) {
    	  res += (a_arr[i]*b_arr[n-i-1]);
      }
      
      System.out.println(res);
   }

}
반응형