import sys
input = sys.stdin.readline
n = int(input()) # 0 <= n <= 50
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort()
# S = A[0]×B[0] + ... + A[N-1]×B[N-1]
S = 0
for i in range (n):
# b는 재정렬할 수 없는 조건이기 때문에
# b에서 가장 큰 값의 인덱스를 기준으로 리스트에서 pop 해준다.
S += a[i]*b.pop(b.index(max(b)))
print(S)
b를 재정렬할 수 없는 조건때문에
a만 정렬하고, list의 기능을 활용해서 문제를 해결했습니다.
'알고리즘SOLUTION > 1장 정렬' 카테고리의 다른 글
백준 2822 파이썬 점수계산 해답 (0) | 2021.03.31 |
---|---|
백준 1181 파이썬 단어정렬 해답 (0) | 2021.03.31 |
파이썬 코딩테스트에 자주나오는 정렬문제 무엇이 있을까? (0) | 2021.03.31 |
파이썬에서 정렬을 사용하는 방법 (0) | 2021.03.31 |