Programming/Algorithm

[백준]2635번 수 이어가기 with Node.js

kort 2023. 2. 1. 18:49

const n = require("fs").readFileSync("testInput.txt").toString().trim();

let max = 0; 
let maxArr = new Array(); 
let prevA,prevB;

for(let i = 1; i <= n; i++) {
    //
    const arr = new Array();   
    arr.push(n);
    arr.push(i);
    prevA = n;
    prevB = i;
    
    while(true){
        //
        let temp = prevA - prevB;
        
        if(temp>=0) {
            arr.push(temp);
        }else{
            break;
        };

        prevA = prevB;
        prevB = temp;
    };

    if(max < arr.length){
        max = arr.length;
        maxArr = arr;
    };
};
console.log(max);                               
console.log(maxArr.toString().replace(/,/gi,' '));

초기에 주어진 값과 반복문의 순서 값을 이용하여 이전 값과 그 이전의 값을 비교해가며 진행 한다.

 

처음에 주어진 값 이외에 가장 큰 수인 두번째 값을 찾기 위하여 반복문을 통하여 해당 회차의 배열 크기를 이전 회차의 배열 크기와 비교해가는데

 

temp의 값이 0 보다 작은 수가 되면 해당 배열의 크기를 기존의 값과 비교하여 더 크다면 새로이 저장해주는 방식으로 로직을 작성한다.