Baekjoon

[백준] 1789번 - 수들의 합 (Java)

Devtraces 2022. 1. 9. 17:53

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

 

1789번: 수들의 합

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

www.acmicpc.net

 

수들의 합 성공

 

문제

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

 

 

입력

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

 

 

출력

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

 

 

예제 입력 1

200

 

예제 출력 1

19

 

 

나의 코드

import java.util.*;

public class Main {
    
    public static void main(String[] args) {
        
        Scanner scan = new Scanner(System.in);
        long s = scan.nextLong();
        long maxN = 0;
        long sum = 0;
        
        while(true) {
            maxN++;
            sum += maxN;
            if(s-sum <= maxN) {
                break;
            }
        }
        
        System.out.println(maxN);
        
    }
    
}

 

※ 체크

런타임 에러 (InputMismatch)가 발생해서 확인해보니 입력 값 S의 범위가 int를 넘어 long으로 선언했다.

변수 선언 시 자료형(데이터 타입)을 주의하자!