성장일기

[python] 백준 1026 - 보물 본문

알고리즘 문제

[python] 백준 1026 - 보물

김몽몽 2022. 1. 6. 09:06

S = A[0] × B[0] + ... + A[N-1] × B[N-1]

라고 할 때, S의 값을 가장 작게 만들기 위해 수를 재배열

S의 최솟값을 출력

 

첫째줄에 N

둘째 줄에 A에 들어있는 N개의 숫자

셋째 줄에 B에 들어있는 N개의 숫자

 

🎇a의 최솟값과 b의 최댓값을 곱한 후 리스트에서 삭제하는 방식으로 해결

 

🧨문제에 B는 재배열하면 안된다고 적혀있는데

재배열해도 풀린다.

재배열 안하고 푸는 법을 고민해보기

import sys
input=sys.stdin.readline
n=int(input().rstrip())
a=list(map(int,input().split()))
b=list(map(int,input().split()))

sum_ab=0
for i in range(n):
    sum_ab+=min(a)*max(b) #a의 최솟값과 b의 최댓값 곱하기
    a.pop(a.index(min(a)))
    b.pop(b.index(max(b)))
print(sum_ab)

 

'알고리즘 문제' 카테고리의 다른 글

[python] 백준 1037 - 약수  (0) 2022.01.07
[python] 백준 10610 - 30  (0) 2022.01.07
[python] 백준 2164 - 카드 2  (0) 2022.01.05
[python] 백준 7785 - 회사에 있는 사람  (0) 2022.01.01
[python] 백준 1735 - 분수 합  (0) 2021.12.31