코딩테스트/백준

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

GAEBAL 2022. 4. 6. 14:46
728x90

문제

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

 

1789번: 수들의 합

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

www.acmicpc.net

 

 

풀이

처음엔 문제를 읽고 너무 어렵게 생각해서 DP 문제인가 아니면 재귀로 접근해야하나 고민했는데 S가 10인 경우, 100인 경우를 예시로 생각해보니까 단순히 계산해주면 될 것 같아서 단순 계산 문제로 접근했다.

 

그런데 분명히 답은 맞는데 런타임 에러가 나서 다시 문제를 읽어보니까

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

범위가 딱 long 타입의 범위였다. 그래서 sc.nextLong으로 받아서 해결!

 

 

코드

// 1789번 수들의 합
// https://www.acmicpc.net/problem/1789

package BAEKJOON;

import java.util.Scanner;

public class Num1789_수들의합 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long S = sc.nextInt();

        long start = 1;
        long sum = 0;
        while (true) {
            sum += start;
            if (sum > S) {
                start--;
                break;
            } else if (sum == S) {
                break;
            }
            start++;
        }

        System.out.println(start);
    }
}
728x90