[백준(baekjoon)] Node.js 입출력

7931 단어 baekjoonbaekjoon

백준에서 Javascript로 문제 풀기

 프로그래머스와 달리 백준은 js로 문제를 풀려면 입출력을 직접 해줘야 한다.

fs 모듈 사용하기

 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에서 문제 풀기

💡 fs 모듈 설치하기
npm install fs을 입력해 fs 모듈을 설치해준다.


예시로 10869번 사칙연산 문제를 vscode로 풀어보겠다.

txt 파일을 하나 만들고 백준 예제 입력을 복사해서 저장한다.

10869.js 파일에서 readFileSync의 filename을 txt파일로 바꿔준다.

// 10869.js
const fs = require('fs');
let input = fs.readFileSync('test.txt').toString().split(' ');

console.log(input); // [ '7', '3' ]

console.log를 찍어보면 [ '7', '3' ]와 같이 배열로 저장된 것을 볼 수 있다. 문제를 풀고 돌려보면

const fs = require('fs');
let input = fs.readFileSync('test.txt').toString().split(' ');

const a = Number(input[0]), 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으로 바꿔준다.

제출 버튼을 누르면 결과를 보여준다.

🤗 정답

좋은 웹페이지 즐겨찾기