배열 a,b가 존재하고
b의 순서는 바꾸지 않으면서, a의 순서만 바꿔서
i번째 a,b 원소의 곱의 총 합이 최소가 되도록 만드는 것
https://www.acmicpc.net/problem/1026
혹시 a와 b에 sort를 써도 정답 처리가 되나 궁금했는데
그냥
a.sort(reverse=Ture) b.sort()를 한 후 곱을 구해도 정답처리가 되긴 하더라
n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort(reverse=True)
b.sort()
s=0
for i in range(n):
s+=a[i]*b[i]
print(s)
근데 다른 사람들도 sort 써도 되는지 다 한번씩 해본게 좀 웃겼음
그 뒤로는 문제 지시사항처럼 풀어봤는데
a를 sort해서 오름차순으로 정리하고,
a의 원소를 순차적으로 탐색하며 b의 max값과 곱해서 최종 sum에 더해준 후,
사용된 b를 remove로 지우는 방식으로 했다
n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort()
s=0
for i in range(n):
b_ = max(b)
s+=a[i]*b_
b.remove(b_)
print(s)
'개발자 강화 > 코딩 테스트' 카테고리의 다른 글
[백준] 2457 공주님의 정원 greedy python 골3 (0) | 2024.11.18 |
---|---|
[백준] 11399 ATM / Greedy python 실4 (0) | 2024.11.18 |
[백준] 2217 로프 Greedy python 실4 (0) | 2024.11.18 |
[백준] 최대 공통 증가 수열(실패...) 7476 골1 (0) | 2024.11.17 |
[백준] 11727 2*n 타일링2 / 실3 / DP (0) | 2024.11.16 |