코딩테스트/백준
[백준] 1026번 - 보물 (파이썬)
PgmJUN
2022. 5. 9. 23:28
1026번 보물 문제는
입력받은 n개의 A,B 배열을 알맞게 정렬하여
S = A[0] * B[0] + ... + A[n-1] * B[n-1]
의 최솟값을 구하는 문제이다.
문제를 해결하기 위해 A를 재배열 해야하지만 B는 재배열 할 수 없다.
나는 해당 문제를 A,B 모두 재배열 하지 않고 풀 수 있는 방법을 찾아 그렇게 해결했다.
n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
s=0
for i in range(n):
s+= min(a) * max(b)
a.pop(a.index(min(a)))
b.pop(b.index(max(b)))
print(s)
int형태 list로 a,b를 입력받고 a의 가장 작은 값과 b의 가장 큰 값을 곱하여 S에 더하고
사용한 가장 작은 값들을 pop으로 삭제시키는 것을 반복하여 S를 구했다.
완벽한 방법이라곤 할 수 없기 때문에 꼼수로 푼 것 같아 아쉽다..