카테고리 없음

C# 백준 1789 수들의 합

프로핌 2024. 3. 2. 13:45

수들의 합

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB 60210 24575 20791 41.665%

문제

서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?

입력

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

출력

첫째 줄에 자연수 N의 최댓값을 출력한다.

 

예제 입력 1

200

예제 출력 1

19

 

이 문제는 s의 합이 될때 n개의 최대값을 구해야 하는거기 때문에 1부터 더해가지고 s가 초과될때 출력을 하면 되는 문제 먼저 최대값 n을 플러스하고 나는 200이 될때까지는 그대로 두고 200이 초과되면 break한 다음에 n - 1을 출력하면 답이 나온다.

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Prob1789_수들의_합
{
    class Program
    {     
        static void Main(string[] args)
        {
            long n = 0;
            int ns = 1;
            long sum = 0;
            long s = long.Parse(Console.ReadLine());

            while (true)
            {
                sum += ns;
                n++;

                if (sum > s)
                {
                    break;
                }

                ns++;
            }

            Console.WriteLine(n - 1);
        }
    }
}