알고리즘SOLUTION/1장 정렬

백준 1026 파이썬 보물 해답

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의 기능을 활용해서 문제를 해결했습니다.