반응형
알고리즘 분류: 그리디 알고리즘
💡 풀이
n = int(input())
lst_a = list(map(int, input().split()))
lst_b = list(map(int, input().split()))
lst_a.sort()
lst_b.sort(reverse=True)
result = 0
for a, b in zip(lst_a, lst_b):
result += a*b
print(result)
가장 작은 S를 만드는 방법은 큰 B의 원소가 크면 클수록 가장 작은 A의 원소를 곱해주는 것이다.
따라서 A는 오름차순 정렬, B는 내림차순 정렬하여 같은 인덱스의 원소를 각각 곱해 더해주면 정답이다.
반응형
'Algorithm > BOJ' 카테고리의 다른 글
BAEKJOON #1463) 1로 만들기 | 다이나믹 프로그래밍 | python (0) | 2021.12.10 |
---|---|
BAEKJOON #12865) 평범한 배낭🎒 | knapsack | dynamic programming (0) | 2021.12.09 |
BAEKJOON #2231) 분해합 (python) (0) | 2021.10.10 |
BAEKJOON #1417) 국회의원 선거 (python) (0) | 2021.09.05 |
BAEKJOON #1449) 수리공 항승 (python) (0) | 2021.09.05 |
댓글