본문 바로가기
알고리즘/baekjoon

[BaekJoon 알고리즘] 백준 1026번 자바

by 두리두리안 2021. 4. 25.

1) 문제 번호 : 1026번 

 

2) 문제 출처

www.acmicpc.net/problem/1026

 

1026번: 보물

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

www.acmicpc.net

3. 입력

첫째 줄에 N이 주어진다.

둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고,

셋째 줄에는 B에 있는 수가 순서대로 주어진다.

N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.

 

4. 출력

첫째 줄에 S의 최솟값을 출력한다.

 

5. 풀이

 

- 배열 A의 원소에서 가장 작은 값과 배열 B에서 가장 큰 값을 곱하여 sum을 최소로 만들면 된다.

 

- 그래서, 이 문제를 푸는 방법은 배열 A와 B를 오름차순하여 A의 첫 인덱스와 B의 마지막 인덱스를 곱하여 반복하거나 / 배열 A를 오름차순, 배열 B를 내림차순으로 하여 같은 인덱스끼리 곱하여 sum을 구하면 된다

 

(참고)

https://yongku.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B1%EC%A4%80-1026%EB%B2%88-%EB%B3%B4%EB%AC%BC-%EC%9E%90%EB%B0%94Java

 

[백준 알고리즘] 백준 1026번 보물 자바(Java)

츄르사려고 코딩하는 코집사입니다. 1. [백준 알고리즘] 백준 1026번 보물 자바(Java) 1) 문제번호 : 1026번 2) 문제 출처 www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는..

yongku.tistory.com

 

 

6. 제출 코드

import java.lang.reflect.Array;
import java.util.*;
public class No_1026 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		int[]A = new int[N];
		int[]B = new int[N];
		
		for(int i=0; i<N; i++) {
			A[i]=sc.nextInt();
		}
		for(int i=0; i<N; i++ ) {
			B[i]=sc.nextInt();
		}
		Arrays.sort(A);
		Arrays.sort(B);
		
		 int sum = 0;
	       for(int i=0;i<N;i++) {
	    	   sum += A[i] *B[N-i-1];
	       }
	       
	       System.out.println(sum); 

	}

}