반응형
문제가 길지만, 요약하자면 배열 두 개를 입력받아서 곱한 값 중 최소값을 출력하라는 것!
이건 진짜 굉장히 간단한데... A배열은 작은 값부터, B배열은 큰 값부터 곱해준 후 더하면 당연히 수열의 최솟값이 나오겠지??
왜냐고?? 전 그냥 그렇게 떠오르던데... 그래서 풀리니 풀리네요... 저도 증명은 못하겠읍니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.Arrays;
import java.util.Comparator;
import java.lang.StringBuilder;
public class Treasure {
public static int stoi(String str) {
return Integer.parseInt(str);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = stoi(br.readLine());
int[] arrayA = new int[N];
int[] arrayB = new int[N];
StringTokenizer st_a = new StringTokenizer(br.readLine());
StringTokenizer st_b = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
arrayA[i] = stoi(st_a.nextToken());
arrayB[i] = stoi(st_b.nextToken());
}
Arrays.sort(arrayA);
Arrays.sort(arrayB);
// A는 작은 수부터, B는 큰 수부터 차례로 곱해서 sum에 더한다.
int sum = 0;
for(int i=0; i<N; i++) {
int tmp = arrayA[i] * arrayB[N-1-i];
sum += tmp;
}
System.out.println(sum);
}
}
로그인
www.acmicpc.net
'컴퓨터 공학 > 백준' 카테고리의 다른 글
[백준] JAVA 자바 : 수들의 합 (1789번) (0) | 2024.02.23 |
---|---|
[백준] JAVA 자바 : 로프 (2217번) (0) | 2024.02.23 |
[백준] JAVA 자바 : 잃어버린 괄호 (1541번) (0) | 2024.02.23 |
[백준] JAVA 자바 : 회의실 배정 (1931번) (0) | 2024.02.23 |
[백준] JAVA 자바 : 연속합 2 (13398번) (0) | 2024.01.27 |