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

GoshK·2022년 2월 16일
0

[백준] Java

목록 보기
34/49
post-thumbnail

[백준] 수들의 합 1789번

나의 풀이

public class SumOfNumbers {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        long N = Long.parseLong(br.readLine());
        long sum = 1;
        long count = 1;
        while(sum <= N) {
            sum += ++count;
        }

        System.out.println(count - 1);
    }
}
  • 문제에는 패턴? 같은게 존재한다.
    1 + 2 + 3 ... + n 과 같이 1씩 증가시키면서 계속 더하다가 N보다 커졌을 때 n - 1을 해주면 해당 숫자를 이루는 자연수의 최대갯수를 구할 수 있다.
  • 우선 숫자의 범위가 크기 때문에 int형으로 하면 런타임 에러가 발생한다. 때문에 모든 숫자는 안전하게 long으로 대체하였다.
  • 1부터 N보다 커질 때 까지 1씩 증가하며 숫자를 더해준다.
  • sum이 N보다 커지면 count 에서 -1을 하여 출력해준다.

0개의 댓글