
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
파일을 하나 생성하고 예제를 복사해 저장합니다.
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);
백준 제출하기
제출 시에는 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);
제출 버튼을 누르면 결과를 확인할 수 있습니다.
References
알고리즘 문제 풀이
2023.05.02
3 min read