728x90
반응형
https://www.acmicpc.net/problem/20300
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
long long t;
cin >> n;
vector<long long> v;
for(int i = 0; i < n; i++){
cin >> t;
v.push_back(t);
}
sort(v.begin(), v.end());
long long max = 0;
if(n % 2 == 0){
for(int i = 0; i < n / 2; i++){
if(v[i] + v[n - i - 1] > max) max = v[i] + v[n - i - 1];
}
} else{
max = v[n - 1];
for(int i = 0; i < (n - 1) / 2; i++){
if(v[i] + v[n - i - 2] > max) max = v[i] + v[n - i - 2];
}
}
cout << max << endl;
return 0;
}
먼저, 근손실 정도를 오름차순으로 정렬한다.
데이터의 개수가 짝수개이면 0번째 + n - 1번째, 1번째 + n - 2번째, ... 중에서 가장 큰 값을 찾으면 되고
데이터의 개수가 홀수개이면 가장 큰 값(n - 1번째), 0번째 + n - 2번째, 1번째 + n - 3번째, ... 중에서 가장 큰 값을 찾으면 된다.
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 2589번 보물섬 (C++) (0) | 2022.04.29 |
---|---|
[BOJ] 2636번 치즈 (C++) (0) | 2022.04.29 |
[BOJ] 12813번 이진수 연산 (C++) (0) | 2022.03.07 |
[BOJ] 10974번 모든 순열 (C++) (0) | 2022.03.06 |
[BOJ] 11659번 구간 합 구하기 4 (C++) (0) | 2022.03.06 |