[C++][백준 1789] 수들의 합

PublicMinsu·2025년 8월 17일

문제

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의 최댓값이므로 해당 값을 출력해 주면 됩니다.

profile
연락 : publicminsu@naver.com

0개의 댓글