μλ° μ½λ
import java.util.*;
class Solution
{
public int solution(int []A, int []B)
{
int answer = 0;
Arrays.sort(A);
Arrays.sort(B);
for(int i=0;i<A.length;i++){
answer += A[i] * B[A.length-i-1];
}
return answer;
}
}
νμ΄μ¬ μ½λ
from itertools import combinations
def solution(A,B):
A.sort()
B.sort(reverse = True)
ans = 0
for i in range(len(A)):
ans+=A[i]*B[i]
return ans
μ²μμ λ΄€μ λ, μ‘°ν©μΌλ‘ νλκ±΄κ° μΆμλλ° λ μκ°ν΄λ³΄λ κ·μΉμ μ°Ύμ μ μμλ€.
λ¨Όμ Aμ Bλ κΈΈμ΄κ° κ°λ€.
Aλ μ€λ¦μ°¨μ μ λ ¬νκ³ Bλ λ΄λ¦Όμ°¨μνλ€, κ°μ μΈλ±μ€μ μλ μμλ€μ κ³±νκ² μ΅μκ°μ΄ λμ¨λ€.
ν μ¦λͺ μ΄ λ§λμ§λ λͺ¨λ₯΄κ² μ§λ§
A = [a , a+1]
B = [b+1 , b] μ΄λΌκ³ ν λ
μ λ ¬ λ€, κ°μ μΈλ±μ€λΌλ¦¬ κ³±νμ λ
a*(b+1) + (a+1)*b = 2ab+a+b κ° λμ€κ³
λ€λ₯Έ μΈλ±μ€λΌλ¦¬ κ³±νλ©΄
a*(b)+(a+1)*(b+1) = 2ab+a+b+1 μ΄ λμ¨λ€.
νμ΄μ¬μ λ΄λ¦Όμ°¨μ μ λ ¬μ΄ μ¬μμ λ΄λ¦Όμ°¨μμΌλ‘ νκ³ μλ°λ μ€λ¦μ°¨μνλ€μμ μΈλ±μ€λ§ λ°κΏμ κ°μ ꡬνμλ€.