백준 1789 - 수들의 합 - 그리디 알고리즘

Byungwoong An·2021년 6월 14일
0

문제


문제링크 : https://www.acmicpc.net/problem/1789

풀이전략

  1. 서로다른 N개의 자연수의 합이 S일때 N의 최대값을 구하는ㅁ ㅜㄴ제이다.
  2. 따라서 1부터 순차적으로 더해주며 그 값이 S를 넘는순간... N-1이 답이 된다.

코드

#include<cstdio>

using namespace std;

long long S;

int main(){

    // freopen("../input.txt","rt",stdin);
    
    scanf("%lld",&S);
    long long sum = 0;
    int res = 0;
    for(int i=1; i<S; i++){
        if(i+sum > S) break;
        else{
            res++;
            sum += i;
        }
    }
    printf("%d\n",res);
    return 0;
}


소감

아주 깔끔했다.

profile
No Pain No Gain

0개의 댓글