Search

    Node.js로 백준(Baekjoon) 문제 풀기
    2023.05.02 3 min read

    Node.js로 백준(Baekjoon) 문제 풀기

    Node.js 입출력 설정

    백준에서 자바스크립트(node.js)로 문제를 풀려면 입출력을 직접 처리해 주어야 합니다.

    fs 모듈은 FileSystem의 약자로 파일 처리와 관련된 모듈입니다.

    파일 읽기

    fs.readFileSync(filename, [options])
    filename의 파일을 [options] 방식으로 읽은 후 내용 반환


    코드가 한 줄인 경우

    const fs = require('fs');
    let input = fs.readFileSync('/dev/stdin').toString().split(' ');

    코드가 여러 줄인 경우

    const fs = require('fs');
    let input = fs.readFileSync('/dev/stdin').toString().split('\n');

    VSCode에서 문제 풀기

    npm이나 yarn으로 fs 모듈을 설치합니다.

    $ npm install fs
    $ yarn add fs

    예시로 10869번 사칙 연산 문제를 풀어보면서 익혀봅시다.

    같은 폴더 내부에 txt 파일을 하나 생성하고 예제를 복사해 저장합니다.

    test file

    10869.js 파일에서 readFileSync의 filename을 예제를 저장한 txt 파일로 바꿔줍니다. 콘솔을 찍어보면 [‘7’, ‘3’]와 같이 배열로 저장된 것을 확인할 수 있습니다.

    // 10869.js
    const fs = require('fs');
    let input = fs.readFileSync('test.txt').toString().split(' ');
    
    console.log(input); // [ '7', '3' ]

    배열 원소를 변수로 저장하고 풀면 됩니다. 예제 출력 결과와 실행한 결과가 같게 코드를 작성해야 합니다.

    const fs = require('fs');
    let input = fs.readFileSync('test.txt').toString().split(' ');
    
    const a = Number(input[0]);
    const b = Number(input[1]);
    
    console.log(a + b);
    console.log(a - b);
    console.log(a * b);
    console.log(parseInt(a / b));
    console.log(a % b);

    run code

    백준 제출하기

    제출 시에는 readFileSync의 filename을 /dev/stdin으로 바꿔줍니다.

    const fs = require('fs');
    let input = fs.readFileSync('/dev/stdin').toString().split(' ');
    
    const a = Number(input[0]);
    const b = Number(input[1]);
    
    console.log(a + b);
    console.log(a - b);
    console.log(a * b);
    console.log(parseInt(a / b));
    console.log(a % b);

    baekjoon


    제출 버튼을 누르면 결과를 확인할 수 있습니다.

    baekjoon result


    References

    Baekjoon Online Judge

    TAGS

    Algorithm

    알고리즘 문제 풀이

    2023.05.02
    3 min read

    TAGS

    Algorithm