삐옹

node.js로 백준 알고리즘 입력값받기 본문

Algorithm

node.js로 백준 알고리즘 입력값받기

삐옹 2022. 6. 28. 07:48

입력값 받기 복잡해보여서 백준은 피하고 피해왔는데

스터디를 백준으로 하게되었으니 다른 방도가 없다.

노드로 입력값을 받아 보자.


저마다 입력값을 받는 방식이 조금씩 다르기 때문에

내게 맞는 방식을 찾아 정리하는게 좋다.

그렇게 정리해본 코드이다.

// 1. 하나의 값을 입력받을 때
const input = require("fs").readFileSync("./input.txt").toString().split(" ");
console.log(input[0]);

// 2. 공백으로 구분된 한 줄의 값들을 입력받을 때
const input = require("fs").readFileSync("./input.txt").toString().split(" ");
const arr = [];
input.map((a) => arr.push(+a));
console.log(arr[0], arr[1], arr[2]);

// 3. 여러 줄의 값들을 입력받을 때
const input = require("fs").readFileSync("./input.txt").toString().split("\n");
const arr = [];
input.map((a) => arr.push(+a));
console.log(arr[0], arr[1], arr[2]);

// 4. 첫 번째 줄에 자연수 n을 입력받고, 그 다음 줄에 구분된 n개의 값들을 입력받을 떄
const [n, ...arr] = require("fs")
  .readFileSync("./input.txt")
  .toString()
  .split(/\s/);
console.log(n, arr);

// 5. 첫 번째 줄에 자연수 n을 입력받고, 그 다음줄부터 n개의 줄에 걸쳐 ㅎ한 줄에 하나의 값을 입력받을 때
const [n, ...arr] = require("fs")
  .readFileSync("./input.txt")
  .toString()
  .split("\n");
console.log(n, arr);

// 6. 하나의 값 또는 공백으로 구분된 여러 값들을 여러 줄에 걸쳐 뒤죽박죽 섞여서 입력받을 때
//   ex) n 입력 - 공백으로 구분된 n개의 값 입력 - m 입력 - 여러 줄에 걸쳐 m개의 값 입력
const fs = require("fs");
const input = fs.readFileSync("./input.txt").toString().trim().split(/\s/);
const n = input[0];
const n_arr = input.slice(1, n + 1);
const [m, ...m_arr] = input.slice(n + 1);

문자의 배열을 모두 숫자로 바꾸고 싶다면 input.map((item) => +item)으로 처리하면 된다.

 

 

마치며

입력값을 받는 식에서 조차 정규표현식이 종종 보인다.

기본적인 정규표현식 정도는 정리를 한번 해놓아야겠다.

'Algorithm' 카테고리의 다른 글

알고리즘 개념  (4) 2022.05.16