백준 - 수들의 합

BooKi·2022년 7월 10일
0

백준

목록 보기
59/64
post-thumbnail

백준 - 수들의 합

문제

문제

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

입력

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

출력

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

예제 입력 1

200

예제 출력 1

19

제출

const fs = require('fs');
let input = fs.readFileSync("/dev/stdin").toString();
let sum = 0, count = 0;

for(let i =1;; i++){
    sum += i
    count++;
    if(sum > input){
        count--;
        break;
    }
}

console.log(count);

주어진 자연수를 만들기 위해 가장 많은 수를 사용해야 한다면

1부터 1씩 올려가며 수를 더하는 것이다

1 2 3 4 5 .. 이런식으로 수를 더하면서 주어진 수를 넘어가는 순간의 개수에서 1개를 빼면된다

주어진 수가 11이라고 한다면

1 2 3 4 5

5일때 15가 되어버리니까 1 2 3 4에서 4를 5로 바꾸면 10이된다

즉, 주어진 수를 넘어가는 시점에서 -1을 한게 가장 많은 수를 사용한 것이다

profile
성장을 보여주는 기록

0개의 댓글