728x90
반응형
https://www.acmicpc.net/problem/20115
20115번: 에너지 드링크
페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
double num;
vector<double> v;
cin >> n;
for(int i = 0; i < n; i++){
cin >> num;
v.push_back(num);
}
sort(v.begin(), v.end());
double sum = v[n - 1];
for(int i = 0; i < n - 1; i++){
if(v[i] < sum) sum += v[i] / 2;
else sum = sum / 2 + v[i];
}
cout << sum << endl;
return 0;
}
먼저 각 에너지 드링크 양을 오름차순으로 정렬한다.
2 3 6 9 10
가장 큰 값을 초기 sum으로 두고 sum = 10
합쳐진 에너지 드링크의 양을 최대로 하려 하므로
벡터에 있는 수를 차례로 sum과 비교하여 둘 중 작은 수를 2로 나누어 더한다.
2 < 10 sum = 1 + 10 = 11
3 < 11 sum = 1.5 + 11 = 12.5
6 < 12.5 sum = 3 + 12.5 = 15.5
9 < 15.5 sum = 4.5 + 15.5 = 20
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 15988번 1, 2, 3 더하기 3 (C++) (0) | 2022.02.25 |
---|---|
[BOJ] 10868번 최솟값 (C++) (0) | 2022.02.22 |
[BOJ] 7983번 내일 할거야 (C++) (0) | 2022.02.20 |
[BOJ] 11505번 구간 곱 구하기 (C++) (0) | 2022.02.20 |
[BOJ] 2042번 구간 합 구하기 (C++) (0) | 2022.02.19 |