Input 받는 방식
[백준BOJ] JavaScript 입력 받는 방법 종류별 정리 - JavaScript(node.js)
아래의 내용은 제가 Javascript로 백준 사이트에서 문제를 풀 때 사용하는 방법을 공유하고자 작성한 글입니다.개선점에 대한 피드백 언제든 환영입니다!🙆♂️입력받는 방법으로 바로 이동하
minjo0n.tistory.com
참고해서 작성
1. fs 모듈 (권장)
- fs(File System module)로 파일 처리와 관련된 전반적인 작업 관장하는 모
- readline보다 빠르고 백준 권장이라 주로 쓰인다
const input = require('fs')
.readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt")
.toString().trim().split(" ").map(Number);
- require로 fs 모듈 불러오기
- readFileSync로 인풋 파일 읽기
- toString으로 Buffer->String으로 전환
- trim과 split로 인풋들 꺼내내기
- map(Number)로 각 인풋들 String->Number 전환
다 대충 짐작 가겠지만 명시하도록 하겠다.
여기서 readFileSync가 뭔지 궁금할텐데
- Reads the entire file synchronously
- Blocks the thread until the file is fully read
- Returns the file contents directly
그러면 asynchronous하게 읽어오는 방법도 있는가? 그렇다.
- fs가 아니라 fs/promises 모듈을 불러온다
- readFile이라는 함수를 사용한다
const fs = require('fs/promises');
async function read() {
const data = await fs.readFile('example.txt', 'utf-8');
console.log(data);
}
read();
하지만 코테에서는 잘 쓸일이 없으니 참고만 하면 되겠다
2. readline 모듈 사용
readline모듈은 Javascript 내장 모듈로 입력되는 값들을 readline을 통해 한 줄씩 읽어오고 입력과 출력을 아래와 같이 따로 분리하여 작성하는 형태로 구성되어 있다.
//readline 모듈 불러오기
const readline = require('readline');
//인터페이스 객체 생성하기
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
//입출력 처리하는 코드
rl.on('line', function (line) {
//입력 처리하는 코드
console.log(line);//입력 출력
rl.close();
}).on('close', function () {
//입력을 받은 뒤 실행할 코드
process.exit();//종료문
});
잘 안 쓸것 같아서 더 깊게 파고들지는 않겠다.
'JS로 코테 준비하기 > 코테연습' 카테고리의 다른 글
| [JS코테0] 숫자 비교하기 (0) | 2026.03.03 |
|---|---|
| [JS코테0] 프로그래머스 - 몫 구하기 (0) | 2026.03.02 |