백준 알고리즘/Lang-node.js

[백준/node.js] 1789번 수 들의 합

Jongung 2022. 3. 18. 23:48

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

 

1789번: 수들의 합

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

www.acmicpc.net

 

  • 사용언어 : node.js
  • 알고리즘 : 수학, 그리디 알고리즘
  • Solved.ac Tier : Silver V

 

 

node.js 코드

1. 문제 정리

서로 다른 N개의 자연수의 합이 S라고 한다. S를 입력으로 줄때 N의 최대 값은 얼마일까?

for문으로 1씩 증가하여 더해지는 등차수열을 사용하여, 입력 받은 input 값보다 더한 sum 값이 더 커졌을때 break 해주는 식으로 해결하였다.

 

 

2. 완성 코드

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

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

console.log(cnt);