코딩테스트
[백준][파이썬]1026번: 보물
과아아앙
2021. 4. 14. 13:25
문제 출처 : www.acmicpc.net/problem/1026
내 풀이(성공)
import sys
input = sys.stdin.readline
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
answer = 0
a.sort()
for i in range(n):
x = a[i]
y = b.pop(b.index(max(b)))
answer += x * y
print(answer)
설명
문제의 해결방법 자체는 아주 쉬웠다.
a와 b를 서로 가장 큰 수와 가장 작은 수 끼리 곱해서 더하면 되는 문제이다.
다만, 조건이 하나 있는 문제였다.
조건은 b를 재정렬하면 안된다는 것이었다.
정렬만 하지 않으면 되니 a는 정렬을 해주어 순서대로 뽑았고 b는 pop()을 이용해 최댓값부터 뽑아서 서로 곱해
answer에 더하는 식으로 코드를 짰다.