JavaScript Input by Baekjoon Online Judge

1줄 입력

백준 2231 분해합

const fs = require('fs');
const input = fs.readFileSync('input.txt').toString();
let start = 1;

const sum = (num) => {
    let sum = 0;
    while(num > 0) {
        sum += num % 10;
        num = Math.floor(num/10);
    }

    return sum;
}

while(true) {
    if ((start + sum(start)) == input) {
        console.log(start);
        break;
    }
    if (start == input) {
        console.log(0);
        break;
    }
    start++;
}

테스트케이스의 수 또는 조건에 따른 수가 주어지지 않는 단일 입력의 경우 한 번만 받으면 된다.
fs모듈을 사용해 입력을 받는데, import로 모듈이 불러와지지 않는 듯 했다.

여러줄 입력

백준 8958 OX퀴즈

const fs = require('fs');
const input = fs.readFileSync('input.txt').toString().split('\n');
let answer = '';

for (let i = 1; i <= input[0]; i++) {
    let totalScore = 0;
    let score = 0;
    let str = input[i];
    
    for (let j = 0; j < str.length; j++) {
        if(str.charAt(j) == 'O') {
            totalScore += ++score;
        } else {
            score = 0;
        }
    }
    answer += totalScore + '\n';
}

console.log(answer);

여러줄 입력의 경우 '\n'으로 분할하여 배열 형태로 한 번에!! 읽는다.
처음 주어진 테스트 케이스가 String이어도 반복문 돌리는데 지장이 없으며, 이후 조건을 String으로 받아 구현하면 된다.
console.log에 시간이 많이 소요되므로 결과를 String으로 합쳐 계산이 끝난 뒤 한 번에 출력하는 것이 좋다.

참고

[JS] 입출력 시간초과, 빈 어레이 체크, node.js 실행(BOJ 10828) by awesome-hong