반응형
문제출처
https://www.acmicpc.net/problem/1026
문제풀이
/**
* a배열과 b배열의 곱을 최소한으로 하는 문제입니다.
* 가장 큰 값과 가장 작은 값을 곱하면 최소값이 나오는 것을 이용해 정렬을 사용하면
* 쉽게 풀 수 있는 문제입니다. 이문제에서 b에 있는 수는 재배열하면 안된다고 나와있어 당황스러웟는데
* 배열을 따로 출력하거나 하지 않기 때문에 일단 제출하니 맞았습니다가 나왔습니다. 다른 풀이도
* 오름차순, 내림차순 소팅을 하는 것을 보아 제가 생각하는 재배열과 문제에서 말하는 것은 다른것 같습니다.
*/
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <iostream> #include <algorithm> using namespace std; bool desc(int a, int b) { return a>b; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin>>n; int a[n], b[n], answer=0; for(int i=0; i<n; i++) cin>>a[i]; for(int i=0; i<n; i++) cin>>b[i]; sort(a, a+n); sort(b, b+n, desc); for(int i=0; i<n; i++) answer+=a[i]*b[i]; cout<<answer; return 0; } | cs |
반응형
'Algorithm' 카테고리의 다른 글
[BOJ 10989] 수정렬하기3 (0) | 2019.02.15 |
---|---|
[BOJ 10814] 나이순 정렬 (0) | 2019.02.13 |
[BOJ 3056] 007 (0) | 2019.01.31 |
[BOJ 1102] 발전소 (0) | 2019.01.30 |
[BOJ 1799] 비숍 (0) | 2019.01.29 |