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를 구했다.
완벽한 방법이라곤 할 수 없기 때문에 꼼수로 푼 것 같아 아쉽다..
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1012번 - 유기농 배추 (파이썬 Recursion Error 해결) (1) | 2023.01.15 |
---|---|
[백준] 1181번 - 단어 정렬 (3) | 2022.10.01 |
[백준] 1920번 - 수 찾기 (파이썬) / 시간초과 해결 (1) | 2022.05.16 |
[백준] 10828번 - 스택 (파이썬) (2) | 2022.05.02 |
[백준] 17478번 - 재귀함수가 뭔가요? (파이썬) (1) | 2022.05.02 |