[백준/파이썬] 1026번 보물 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1026번 보물
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
두 배열 A, B가 주어질 때
A는 재배열할 수 있고 B는 재배열할 수 없습니다.
S = Σ(A[i] * B[i])의 값을 최소로 만드는 값을 구하는 문제입니다.
코드
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort(reverse = True)
c = [a[i]*b[i] for i in range(n)]
print(sum(c))
설명
곱의 합을 최소화하려면 작은 수와 큰 수를 서로 곱하도록 짝지으면 됩니다.
그래서 A는 오름차순,
B는 내림차순으로 정렬해 같은 인덱스끼리 곱한 뒤 합을 구하면 됩니다.
댓글남기기