#include <iostream>
#include <algorithm>
#include <vector>
#include <math.h>
int main()
{
int N = 0;
std::cin >> N;
std::vector<int> vec(N, 0);
int iMax = 0;
for (int i = 0; i < N; ++i)
{
std::cin >> vec[i];
iMax += vec[i];
}
int M = 0;
std::cin >> M;
std::sort(vec.begin(), vec.end());
if (M >= iMax)
{
std::cout << vec[N - 1];
return 0;
}
else
{
int iNumber = 0;
for (int i = 1; i < N; ++i)
{
iNumber += vec[i - 1];
int iAns = std::round((M - iNumber) / (N - i));
if (iAns >= vec[i - 1] && iAns <= vec[i])
{
std::cout << iAns;
return 0;
}
}
}
std::cout << M / N;
return 0;
}
이분 탐색...? 이렇게 해서 풀었는데 이것도 이분 탐색이라고 할 수 있나? 흠 잘 모르겠다...
'오늘의 알고리즘' 카테고리의 다른 글
[C++] 백준 3687 성냥개비 (0) | 2022.06.17 |
---|---|
[C++] 백준 19637 IF문 좀 대신 써줘 (0) | 2022.06.17 |
[C++] 백준 20006 랭킹전 대기열 (0) | 2022.06.16 |
[C++] 백준 22251 빌런 호석 (0) | 2022.06.15 |
[C++] 백준 2110 공유기 설치 (0) | 2022.06.15 |