
์๋ฐ ์ฝ๋
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 ์ด ๋์จ๋ค.
ํ์ด์ฌ์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ด ์ฌ์์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ํ๊ณ ์๋ฐ๋ ์ค๋ฆ์ฐจ์ํ๋ค์์ ์ธ๋ฑ์ค๋ง ๋ฐ๊ฟ์ ๊ฐ์ ๊ตฌํ์๋ค.