IT 기획의 길

백준 1026번 보물 [JAVA] 본문

알고리즘(백준)/정렬

백준 1026번 보물 [JAVA]

완벽하기 쉽지 않지만 완벽해지려고 노력해야 한다 2020. 12. 26. 20:24

 

알고리즘 설계

1. A배열을 오름차순해서 정렬하고

2. B배열을 내림차순으로 정렬해서

3. A배열의 가장 큰값과 B배열의 가장 작은값을 곱하고 A배열의 그 다음 큰값과 B배열의 그 다음 작은값을 곱하는식으로 계산을하면 S는 최솟값이 된다

 

 

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int N=scan.nextInt();
		int sum=0;
		ArrayList<Integer> A=new ArrayList<>();
		ArrayList<Integer> B=new ArrayList<>();
		
		for(int i=0;i<N;i++) {
			int a=scan.nextInt();
			A.add(a);
		}
		
		for(int i=0;i<N;i++) {
			int b=scan.nextInt();
			B.add(b);
		}

		Collections.sort(A);
		Collections.sort(B,Comparator.reverseOrder());
		
		for(int i=0;i<N;i++)
			sum+=A.get(i)*B.get(i);
		
		System.out.println(sum);
		
	}

}