PS/BOJ

[백준 BOJ] 1026 보물

Jubil 2018. 10. 28. 16:25
반응형

1026_보물

링크

https://www.acmicpc.net/problem/1026

 

풀이


 

배열의 원소의 곱의 합의 최솟값을 구해야 합니다.

그렇다면 큰 수는 작은 수와 곱해서 더하는 방식으로 구현하면 됩니다.

B에 있는 수는 재배열이 안된다고 하지만, 최솟값을 구하는 문제이기 때문에 재배열을 해주도록 합시다.

 

A를 오름차순으로, B를 내림차순으로 정렬해준 뒤, 서로 곱하고 더하면 됩니다.

 

 

코드

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

//1026_보물

#include <cstdio>

#include <algorithm>

#include <functional>

using namespace std;

 

int n, a[50], b[50], res;

 

int main() {

    scanf("%d"&n);

 

    for (int i = 0; i < n; ++i) scanf("%d"&a[i]);

    for (int i = 0; i < n; ++i) scanf("%d"&b[i]);

 

    sort(a, a + n);

    sort(b, b + n, greater<int>());

 

    for (int i = 0; i < n; ++i) {

        res += a[i] * b[i];

    }

 

    printf("%d\n", res);

 

    return 0;

}

Colored by Color Scripter

cs

 



반응형

'PS > BOJ' 카테고리의 다른 글

[백준 BOJ][그리디] 1049 기타줄  (0) 2018.10.30
[백준 BOJ] 1032 명령 프롬프트  (0) 2018.10.29
[백준 BOJ] 1009 분산처리  (0) 2018.10.27
[백준 BOJ] 1002 터렛  (0) 2018.10.26
[백준 BOJ][DP] 2167 2차원 배열의 합  (2) 2018.08.21