끄적끄적 코딩
article thumbnail

N개의 자연수의 합이 S일 때
S가 주어지고 N의 최댓값을 구하는 문제입니다.

N이 최대이기 위해서는 가능한 많은 수를 써야합니다.
중복되는 수는 사용할 수 없기 때문에 1부터 순차적으로 더해줍니다.

마지막으로 더한 숫자를 이용해서 200에 맞아 떨어지게 해줄 수 있으므로
순차적으로 더해서 S보다 커지면 -1을 해줍니다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main(int argc, char* argv[])
{
	long long n;
	long long sum = 0;
	long long count = 1;

	cin >> n;

	while (1) {
		sum += count;
		if (sum > n) {
			--count;
			break;
		}
		++count;
	}

	cout << count << endl;

	return 0;
}

검색 태그