✏️ 내가 작성한 코드
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
sum = 0
A.sort()
B.sort(reverse= True) # 내림차순 정렬
for i in range(N):
sum += A[i] * B[i]
print(sum)
✏️ 참고
A배열(재배열 가능)의 각 원소와 B배열(재배열 불가)의 각 원소들의 합(S)이 최솟값이기 위해서는
B배열의 원소가 클수록 A배열의 원소 중 가장 작은 값과 곱해야 한다.
따라서 B배열은 내림차순 정렬, A배열은 오름차순 정렬하여 서로 같은 인덱스끼리 곱한 다음 합치면된다.
'백준' 카테고리의 다른 글
[백준][python] 1181 단어 정렬 문제 (0) | 2023.08.01 |
---|---|
[백준][python] 10817 세 수 문제 (0) | 2023.07.25 |
[백준][python] 10814 나이순 정렬 문제 (0) | 2023.07.05 |
[백준][python] 2839 설탕 배달 문제 (0) | 2023.07.05 |
[백준][python] 11053 가장 긴 증가하는 부분 수열문제 (0) | 2023.07.04 |