백준 문제 풀이를 위한 node.js 입출력 방법

pds·2022년 11월 23일
0

알고리즘

목록 보기
1/8

이제 자바스크립트로도 코딩테스트를 준비하게 되었는데

백준의 경우는 node.js 로 문제를 풀어야 하고

백준은 문제를 위해 입출력을 직접 다뤄야 하는 구조이기 때문에

백준 알고리즘 문제 풀이 준비 이전에 먼저 입출력에 대해 정리해보려고 한다.


fs 모듈 준비

파일 시스템을 위한 모듈로 파일 읽기,쓰기, 생성 등을 할 수 있게 해주는 모듈이다.

const fs = require("fs");

왠 파일시스템?

백준에서 /dev/stdin 라는 곳에 테스트 케이스의 입력 값들이 있고 그것들을 읽어

본인이 낸 소스코드를 돌려 검사하는 식이라고 한다.

vscode 등 본인 로컬환경에서는 적절한 텍스트 파일을 만들고 그 텍스트 파일에 입력값들을 작성하여

소스코드에서 읽어들여 문제를 푸는데 활용하면 될 것 같다.

제출할 때는 readFileSync 의 파라미터를 /dev/stdin 로 꼭 바꿔주자.


input.txt 파일

안녕하세요
const INPUT = require("fs").readFileSync("input.txt").toString().trim().split("\n");

function solution() {
  console.log(INPUT);
}

module.exports = solution;

입력받기 - 한 줄 입력

input.txt 파일

14 46 100 65
const INPUT = require("fs").readFileSync("input.txt").toString().split(" ");

function solution() {
  INPUT.forEach((v) => console.log(v + " " + typeof v));
}

module.exports = solution;


입력받기 - 여러 줄 입력

input.txt 파일

14 46 100 65
6 1 4 5
5 9 0 4
const INPUT = require("fs").readFileSync("input.txt").toString().split("\n");

function solution() {
  const inputs = INPUT;
  console.log(typeof inputs[0]);
  inputs.forEach((v) => console.log(v));
}

module.exports = solution;

오 자바보다 쉽네?

적응만 되면 자바보다 입출력 처리가 훨씬 간단할 것 같다.

자바의 경우 입출력 처리하기 귀찮아서 백준 문제를 풀기 싫어질 정도였다.

노드의 경우 위에 두가지 방법으로 소개했지만 어떤 형태든 잘 읽어들여서

원하는 형태로 잘 저장하여 사용하기만 하면 될 것 같아 좀 더 유연할 것 같다!


Reference

profile
강해지고 싶은 주니어 프론트엔드 개발자

0개의 댓글