[백준]알고리즘 독학 시작! 그리고node.js로 입력받기

김성호·2022년 7월 7일
0

알고리즘 공부

목록 보기
1/3
post-thumbnail

여태까지 갖은 이유로 미뤄왔던 알고리즘 독학을 백준 문제를 통해 시작하기로 했다. 코딩테스트를 몇 번 본 적은 있지만 알고리즘 관련 개념이 너무 부족하다고 느낀 탓에 단계별로 차근차근 풀어보려고 한다.

백준에서 javascript로 문제를 풀려면 node.js 런타임 환경을 구성해야 했다. 백준은 IDE를 제공하지 않기 때문에 각자 사용하는 IDE에서 직접 실행 및 디버깅을 해야하고, 가장 중요한 입력을 직접 받아내야만 한다.

원래 주 언어였던 python에서 입력 받는 것은 비교적 직관적이고 쉬웠지만 node.js에서 입력받는 방법은 좀 까다로웠다.

node.js에서 입력받는 방법은 터미널에서 직접 키보드로 입력받는 방법과 테스트 케이스를 미리 만들어놓고 참조하는 방식이 있는데, 개인적으로 편한 방법은 후자였다.

fs모듈 활용하기

우선 백준 문제에서 주어지는 테스트 케이스를 받아 적은 텍스트 파일이 필요하다.
생성한 텍스트 파일을 참조하여 입력받을 수 있도록 fs모듈의 readfilesync함수를 이용한다.

1. 개행 기준으로 입력받기

const fs = require("fs");
const input = fs.readFileSync('./input.txt').toString().split('\n');

const [A, B] = [parseInt(input[0]), parseInt(input[1])];

  if(A > B){
    console.log('>');
  } else if(A < B){
    console.log('<');
  } else{
    console.log('==');
  }
  console.log(A, B);

2. 공백 기준으로 입력받기

const fs = require("fs");
const input = fs.readFileSync('./input.txt').toString().split(' ');

여기서 fs모듈로 받은 입력은 Buffer객체이기 때문에 받은 입력값을 그대로 출력하거나 연산하면 오류가 날 수 있다. 위 코드에서 toString()처리를 해주는 이유도 그 때문이다.

profile
꾸준한 성장을 향해

0개의 댓글

관련 채용 정보