public int solution(int []A, int []B) {
Arrays.sort(A);
Arrays.sort(B);
return IntStream.range(0, A.length).map(i -> A[i] * B[B.length - 1 - i]).sum();
}
큰 값끼리 곱해지면 최솟값이 나올 수 없을 것 같아서 일단 한쪽에서는 작은 값부터 곱하고 다른 쪽에서는 큰 값부터 곱해서 더하면 최소값이 되지 않을까라고 생각하고 코드를 작성했다.
결과적으로 통과는 했는데, 정확하게 왜 이 방식이 최소값이 나오는지는 잘 모르겠다..