-
Educational Codeforces Round 39 (Rated for Div. 2) - A. Partition코드포스(CodeForce) 2018. 8. 17. 17:43반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 이해
N 개의 정수형 데이터가 들어오는데 여기서 두개의 집합으로 만든다.
각 집합에 총합을 구한다.
A 집합 총합 - B 집합 총합 으로 가장 큰 수가 나오도록 집합을 구성하고 가장 큰 수를 출력하라.
* 문제 풀이
문제의 제약사항에서 두 집합중 하나는 비어 있을 수 도 있다고 했다.
0 을 기준으로 0 보다 작으면 뺄셈 연산을 하여 더한다.
-3 이 있다면 -(-3) 은 + 3
그 외는 다 더 한다.
3. 코드
123456789101112131415161718192021222324252627282930313233#include <iostream>#include <vector>#include <algorithm>#include <functional>#include <string>using namespace std;int main() {int n;cin >> n;vector<int> arr(n);for (int i = 0; i < n; i++) {cin >> arr[i];}sort(arr.begin(), arr.end());int sum = 0;for (int i = 0; i < arr.size(); i++) {if (arr[i] <= 0) {sum -= arr[i];}else {sum += arr[i];}}cout << sum << endl;return 0;}cs 반응형'코드포스(CodeForce)' 카테고리의 다른 글