알고리즘 문제풀이

백준 1026 보물 Python 수학 그리디 정렬 실버4

아크몽 2024. 3. 18. 00:14

문제에서 B를 정렬하지 말라는 말이 없었다면,

A는 오름차순으로 B는 내림차순으로 정렬 후 같은 인덱스끼리 곱했다면 정답이었겠지만,

조건이 있었기 때문에,

B의 맥스값을 뽑아내는 방법을 사용했다.

풀이 후 다른 사람들의 풀이도 비교해보고 싶었는데, 전부 이 알고리즘에서 파생된 방법을 채택했는것을 알 수 있었다.

# 1026 보물 실4
n = int(input())
arr_a = list(map(int,input().split()))
arr_b = list(map(int,input().split()))

arr_a.sort()
sum_v = 0
i = 0
while arr_b:
    sum_v += max(arr_b) * arr_a[i]
    arr_b.remove(max(arr_b))
    i += 1

print(sum_v)