https://www.acmicpc.net/problem/1789
N을 가장 키우려면 가장 작은 자연수 위주로 사용해야 됩니다.
#include <iostream>
using namespace std;
using ll = long long;
ll N;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> N;
if (N == 1)
{
cout << 1;
}
else
{
for (ll i = 1, num = N; i <= N; ++i)
{
num -= i;
if (num < 0)
{
cout << i - 1;
break;
}
}
}
return 0;
}
가장 작은 자연수인 1부터 S까지 하나씩 빼주면서 0 밑으로 간 경우를 찾아냅니다. 0밑으로 갔다면 그전의 값이 N의 최댓값이므로 해당 값을 출력해 주면 됩니다.