[자바스크립트] 백준 node.js 입력받기 ( feat. 프로그래머스처럼 풀기)

iberis2·2023년 6월 16일
0

알고리즘 문제

목록 보기
27/27
post-thumbnail

백준에서는 프로그래머스와 달리 node.js 로 파일을 읽어와 입력을 받아서 문제 풀이를 해야합니다.
처음부터 입력 읽어오기 + 문제풀이를 동시에 하려고 하면 헷갈릴 수 있으니,

프로그래머스 문제 풀이처럼
입력을 받아서 solution 함수에 넣을 수 있도록 만들어 두고
solution 함수를 따로 작성하여 해당 함수 내부에 문제풀이 코드를 작성하는 것으로 연습해보는 걸 추천합니다.

백준 node.js 입력받기

1. fs 모듈 사용

1-1. 한 줄 입력

InputOutput
a b[ 'a', 'b' ]
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split(' ');

console.log(input) // [ 'a', 'b' ]

1-2. 여러 줄 입력

InputOutput
a
b
[ 'a', 'b' ]
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

console.log(input) // [ 'a', 'b' ]

2. readline 모듈 사용

2-1. 한 줄 입력

InputOutput
aa
const readline = require('readline');

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

rl.on('line', function(line) {
  console.log(line); // a
  rl.close();
}).on("close", function() {
  process.exit();
});

2-2. 여러 줄 입력

InputOutput
a
b
[ 'a', 'b' ]
const readline = require('readline');

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


let input = [];
rl.on('line', function (line) {
  input.push(line)
})
  .on('close', function () {
  console.log(input); // [ 'a', 'b' ]
  process.exit();
});

🔗 백준을 프로그래머스 처럼 풀기

자바스크립트로 백준 문제풀이를 하는 분들을 위해 🔗 백준-단계별로 풀어보기 에 대해
프로그래머스의 solution 함수 처럼 입출력이 들어있는 풀이 코드 모음을 만들어 보았습니다.
solution 함수 내부 코드를 지우고 함수 내부에 문제를 풀면 됩니다.

fs 입력 예제

  • 코드 제출시 './input.txt''/dev/stdin' 또는 0으로 바꿔서 제출하시면 됩니다.
  • 가장 첫 번째 테스트 케이스가 같은 폴더 내부 input.txt 파일에 들어있습니다.
    • 다른 테스트 케이스 확인은 input.txt 파일을 수정해서 확인할 수 있습니다.

🔗 백준 / 단계별로 풀어보기 / 입출력과 사칙연산 / 1000번

// 입출력과_사칙연산/b1000/app.js

const fs = require('fs')
let input = fs.readFileSync('./input.txt').toString().split(' ') // vs
// 코드 제출 시 let input = fs.readFileSync('/dev/stdin').toString().split(' ') 로 바꿔주세요
const num1 = +input[0]
const num2 = +input[1]

function solution(a, b) {
 // 여기에 코드를 작성하면 됩니다.
}

solution(num1, num2)

readline 입력 예제

solution 함수 내부에 문제 풀이 코드를 작성 후\
터미널에서 해당 폴더로 진입하여 node.js를 실행시키고 \
직접 테스트 케이스를 입력 후 확인할 수 있습니다.

🔗 백준 / 단계별로 풀어보기 / 반복문 / 2438번

// 반복문/b2438/app.js

function solution(num) {
 // 여기에 코드를 작성해주세요
}

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

rl.on('line', line => {
  solution(+line.trim())
  rl.close()
  process.exit()
})
# 터미널에서 아래와 같이 node.js를 실행하여 확인할 수 있습니다.

cd 반복문/b2438
node app.js

# 테스트 케이스 input 입력
5 
profile
React, Next.js, TypeScript 로 개발 중인 프론트엔드 개발자

0개의 댓글