[백준] 1026번 - 보물 (파이썬)

 

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를 구했다.

 

완벽한 방법이라곤 할 수 없기 때문에 꼼수로 푼 것 같아 아쉽다..