파카

백준 문제 풀이 관련 본문

프로그래밍/문제풀이

백준 문제 풀이 관련

Anphaca 2021. 11. 24. 23:32

백준에서 JavaScript로 문제를 풀면서 준비를 하려고 하다보니 

백준은 프로그래머스와는 다르게 입출력을 제공해주지 않는다.

(그렇다보니 메모리 문제도 있고 JS로는 풀 수 없는 문제가 있다고 한다..)

 

본인이 다 입출력 코드를 짜야하는데 

내용 정리가 필요해서 기록에 남겨놓으려고 한다.

 

- 백준에서 JS 로 문제를 풀 경우 Node.js 를 선택하고 풀면 된다. 

많은 블로그에서 설명하고 있지만 Template 을 제대로 기억하고 활용하기 위해서 기록에 남겨두려고 한다.

 

아래의 2가지는 모두 console.log를 통해 값을 출력하면 된다.

 

Readline 

const readline = require('readline');

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

rl.on('line', function(line) {
  console.log(line); //입력 값을 처리할 callback 내용 기재
  
  
}).on("close", function() {
  // 출력 
});

// 위 내용을 활용하면 

// 값을 받을 배열 선언
const input = [];

require('readline')
  .createInterface(process.stdin, process.stdout)
  .on('line', function (line) {
    input.push(line.trim());	// trim은 좌우 공백을 없애주는 함수이다. 사용여부는 때에 따라?
  })
  .on('close', function () {
    // input 값에 대한 처리    
  });

 

fs 모듈

readFile() 

// callback으로 반환한다 (비동기)
fs.readFile(filename, [options], callback)

readFileSync()

fs.readFileSync(filename, [options])

 

var fs = require("fs")

// 문자 하나만 입력받을 경우
var input = fs.readFileSync("/dev/stdin").toString()

// split을 통한 한칸 띄어쓰기로 구분
// input[0], input[1] 배열에서 꺼내쓰면 된다.
var input = fs
  .readFileSync("/dev/stdin")
  .toString()
  .split(" ")

// 
var input = fs
  .readFileSync("/dev/stdin")
  .toString()
  .split("\n")

// 숫자값
// Number로 바로 변경하는 방법도 있어보인다.
var input = fs
  .readFileSync("/dev/stdin")
  .toString()
  .split(" ")
  .map(function(a) {
    return +a
  })

기본적인 것들 

추가로 계속 찾아보면서 보고 있는 것들 자주 들락날락 할 거 같아서 남겨놓는다 

 

위와 같은 여러 입출력을 사용하여 문제를 풀더라도
여러 에러를 마주하게 되는데 검색을 통해 알게된 여러 블로그를 기록에 남겨놓으려고 한다.

 

https://tesseractjh.tistory.com/39 

: 예제 정리

 

Node.js로 백준(BOJ) 문제 풀 때 유의할 점들

백준에서 Node.js로 입력을 받는 방법은 크게 두 가지가 있다. 첫 번째는 readline 모듈을 사용하는 것이고, 두 번째는 fs 모듈을 사용하는 것이다. (이 글에서는 fs 모듈에 대해서만 다루겠다.) Python으

tesseractjh.tistory.com

https://hanch-dev.tistory.com/4

: 에러 정리 

 

[백준] Node.js 알고리즘 풀때 주의 사항

21-06-04 업데이트 이 글은 제가 문제를 풀다가 추가적인 주의점을 발견활 경우 지속적으로 추가될 예정입니다. 저는 그나마 자신있는 언어가 JavaScript여서 알고리즘 사이트에서는 주로 Node.js, JavaS

hanch-dev.tistory.com

 

 

출처 
: 백준 Node.js 입출력 정리

: 백준 알고리즘 Node.js 입출력 정리
: [Node.js]표준 입력 받기(readline)

: [BOJ] 백준에서 Node.js 입력을 Python처럼 쉽게 받는 법

 

Comments