728x90

S는 서로 다른 N개의 자연수의 합이기 때문에 N은 1부터 증가하면서 누적 합이 S를 초과하기 전의 N을 구하면 되는 문제이다.
하지만 S의 범위는 int를 초과하는 범위이기때문에 long long으로 바꿔주어야한다.
#include<iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long long s;
cin >> s;
long long sum = 0;
long long answer = 0;
for(long long i = 1; ; i++)
{
if(sum + i <= s)
{
sum += i;
answer = i;
}
else
{
break;
}
}
cout << answer;
}
반응형
'알고리즘 > boj' 카테고리의 다른 글
BOJ 1016 제곱 ㄴㄴ 수 (0) | 2023.01.17 |
---|---|
BOJ 1439 뒤집기 (0) | 2023.01.14 |
BOJ 1114 통나무 자르기 (0) | 2023.01.13 |
BOJ 11047 동전 0 (0) | 2023.01.05 |
BOJ 1449 수리공 항승 (0) | 2023.01.05 |