그리디 알고리즘
문제 해결
B데이터는 정렬 금지니까 A데이터를 정렬하여 최솟값 찾으면 된다.
정렬만 하지 않으면 되니까 A데이터는 정렬을 해주어서 데이터를 뽑고 B데이터는 pop()을 이용해서 최댓값부터 뽑아내면 된다.
생각
데이터를 pop할 때 이렇게 표현하는 것도 익숙해지자.
소스코드
import sys
N = int(input())
dataA = list(map(int, input().split()))
dataB = list(map(int, input().split()))
dataA.sort()
res = 0
for i in range(N):
max_A = dataA[i]
min_B = dataB.pop(dataB.index(max(dataB)))
res += max_A * min_B
print(res)