알고리즘/백준

[백준] 수들의 합_자바

Ellie67 2022. 11. 12. 14:27

https://www.acmicpc.net/problem/1789

 

1789번: 수들의 합

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

www.acmicpc.net

 


자연수 N의 최댓값을 구해야하기 때문에 작은 자연수부터 더해야할 것이다.

 

EX) S=60 

자연수 1부터 합이 60을 넘어갈 때까지 더한다. 11까지 더했을 때 60을 넘긴다.

1+2+3+4+5+6+7+8+9+10+11 = 66

60을 만드려면 66에서 6을 빼면 된다. 이렇게 되면 서로 다른 N개의 자연수를 더해 S를 만들 수 있다.

따라서 자연수 개수는 11-1 = 10개이다. 

 

import java.util.Scanner;

public class P1789 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        long s = sc.nextLong();
        long sum = 0;
        int cnt = 0, i=1;
        while(true){
            if(s<sum){
                cnt -= 1;
                break;
            }
            sum += i;
            i++;
            cnt++;
        }
        System.out.println(cnt);
    }
}