학습
시험

재배열 최대합

난이도
BEGINNER

문제 설명

길이가 같은 두 개의 일차원 배열 A와 B가 있습니다.
두 배열 A, B에 대해 동일 인덱스에 해당하는 원소끼리 곱한 값의 합(A[0]*B[0] + A[1]*B[1] + ... + A[n-1]*B[n-1])을 "배열 내적값"이라고 할 때, B 배열을 적절히 재배열 하여 "배열 내적값"을 최대화하려고 합니다.

A와 B가 주어질 때, B 배열을 재배열 하여 "배열 내적값"의 최댓값을 반환하는 solution 함수를 작성하시오.

예를 들어, A = [3, 4, 10, 1]와 B = [4, 5, 1, 1]가 주어진 경우 B 배열을 [1, 4, 5, 1]로 재배열하면 "배열 내적값"은 3×1 + 4×4 + 10×5 + 1×1=703\times1\,+\,4\times4\,+\,10\times5\,+\,1\times1 = 70 이 되고 이 값이 최댓값에 해당합니다.


제한 사항

  • A와 B의 길이는 1 이상 100,000 이하입니다.
  • A와 B의 길이는 항상 같습니다.
  • A와 `B의 원소는 1 이상 100 이하의 자연수입니다.

예시 테스트케이스 설명

테스트케이스 번호 A B return
1 [3,4,10,1] [4,5,1,1] 70
2 [1,2,3] [1,2,3] 14
3 [5,5,5,5,5] [1,2,3,4,5] 75

1번 테스트케이스 설명

  • B 배열을 [1, 4, 5, 1]로 재배열 했을 때 "배열 내적값"이 최대가 됩니다.
    • 3×1 + 4×4 + 10×5 + 1×1=703\times1\,+\,4\times4\,+\,10\times5\,+\,1\times1 = 70

2번 테스트케이스 설명

  • B 배열을 그대로 두었을 때 "배열 내적값"이 최대가 됩니다.
    • 1×1 + 2×2 + 3×3=141\times1\,+\,2\times2\,+\,3\times3 = 14

3번 테스트케이스 설명

  • A 배열의 원소가 모두 동일하므로, B 배열을 어떻게 재배열 하더라도 "배열 내적값"은 항상 동일합니다.
    • 5×1 + 5×2 + 5×3 + 5×4 + 5×5=755\times1\,+\,5\times2\,+\,5\times3\,+\,5\times4\,+\,5\times5 = 75