최소값 만들기
최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다.
접근방법
- 두 배열의 곱이 최소가 될려면 정렬을 해야한다
- 곱을 하지않은 A배열의 가장 작은 수와 B배열의 가장 큰 수를 길이만큼 반복하여 곱한다.
- 곱한값들을 answer에다가 합친다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package getMinSum;
import java.util.Arrays;
public class GetMinSum {
public int getMinSum(int[] A, int[] B) { int answer = 0; Arrays.sort(A); Arrays.sort(B); int i = 0; while(i < A.length) { answer += A[i] * B[B.length-i-1]; i++; } return answer; } public static void main(String[] args) { GetMinSum gms = new GetMinSum(); int[] A = {1,5,2}; int[] B = {2,5,3}; System.out.println(gms.getMinSum(A,B)); } }
|