알고리즘/boj

BOJ 1789 수들의 합

칼퇴시켜주세요 2023. 1. 13. 19:41
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