본문 바로가기

Coding Test

[node.js] 백준 알고리즘 자바스크립트 출력 방법

알고리즘을 확인할때 출력방법이 헷갈려서 적어보는 기록

 

 

지금까지는 2가지 방법을 알았다.

 

1. fs

2. readline

 

이 두가지 내장 모듈을 사용하여 출력하는 방식인데.

 

fs:

 

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

 

 

fs를 불러온다음 내장함수 readFileSync를 사용해 특정 폴더 안에 있는 파일을 string값으로 만든 후 띄어쓰기 마다 split을 해서 배열에 담는다.

 

 

예를 들어 1000번 문제를 풀때 같은 방식을 사용했는데

 

'

 

일단 내 폴더 트리안에 dev라는 폴더를 만들어 주고 그 안에 stdin 파일을 만들어줬다. ( 파일이름은 임의대로 지정해도 됨 )

 

 

 

위 출력코드를 입력하고 stdin파일에는 계산할 값을 보낸다.

이렇게 하면 stdin에 입력을 하고 콘솔에서 결과값을 출력받을 수 있다.

 

 

fs에서 여러가지 데이터를 입력해야 할 경우(1009번같은 경우) 여러가지 방법을 쓸 수 있는데

 

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

 

이런식으로 엔터를 기준으로 split해서 출력하는 방법도 좋은 것 같다.

 

readline:

 

const readline = require('readline');
const rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout
});

rl.on('line',line=>{
    console.log(line);  	// 터미널에서 입력한 값
})

 

이렇게 작성하고 node를 실행시킨 후 터미널에서 숫자를 적으면 적은 값이 그대로 표출된다.

 

 

 

readline으로 여러 데이터를 출력하려면

 

const readline = require('readline');
const rl = readline.createInterface({
	input: process.stdin,
	output: process.stdout
});

rl.on('line',line=>{
    console.log(line);  	// 터미널에서 입력한 값
}).on('close',()=>{
	console.log('코드 끝남');	// ctrl+c 눌러서 node에서 나갈때 실행됨
    process.exit();
})

 

이렇게 해서 코드가 끝나기 전까지 값을 받으면 된다.