[D+62]20220210_(1)

ga_ding·2022년 2월 10일
0

TIL

목록 보기
12/55

어제 혼자 문제를 풀면서 답안을 적기 전, fs모듈을 사용해서 파일을 읽어오는 과정을 이해하는데 있어서 어려움을 겪었다. 그래서 문제의 정답을 맞췄다고 하더라도 굉장한 찝찝함이 남았고 성취감 또한 느끼지 못했다.
친구에게 도움을 청했을 때 원래 처음엔 그런 법이라고 다들 그렇다고 말해주긴 했지만 가려운 부분을 시원하게 긁지 못한 답답함에 검색을 따라 입력 방식에 대한 부분만 따로 일지를 작성하기로 했다.

const fs = require("fs");

fs모듈을 사용해서 파일을 읽겠다.

const input = fs.readFileSync('/dev/stdin').toString().split(' ');

입력 받은 문자열을 split() 함수를 통해 배열화한다.
(split(' '), split('\n')_줄바꿈 등)
toString()이란 숫자를 문자로 바꿔주는 것

const a = Number(input[0]);
const b = Number(input[1]);

a는 input의 0번째 숫자 b는 input의 1번째 숫자
(문자인 값을 숫자로 바꿔주는 것 Number)
Number(input[0]) = +input[0] (데이터타입이 숫자가 아니면 암시적으로 숫자가 바꿔줘서 Number와 똑같은 효과를 줄 수 있다.)

.map(val=>+val)

문자에서 숫자로 바꿔주는 코드로 split 뒤에 붙여주면 된다.

const fs = require("fs");
const input = fs.readFileSync('/dev/stdin').toString().split(' ').map(val=>+val);

전체적으로 이런식의 기본코드가 형성된다.


(이 유튜브를 통해서 알게 된 내용을 참고하여 기재하였음)
https://blog.pkiop.me/boj-js/문제번호/ 로 검색하면 fs모듈 코드를 참고하여 문제를 풀 수 있음

한줄 입력을 받을 때

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
let num = Number(input);
for (let i = 1; i <= num; i++) {
  console.log(i);
}

여러줄로 입력을 받을 때

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let count = input[0];
let numbers = [];
for (let i = 1; i < input.length; i++) {
  if (input[i] !== '') {
    numbers.push(input[i].split(' '));
  }
}
for (let i = 0; i < numbers.length; i++){
  let num1 = Number(numbers[i][0]);
  let num2 = Number(numbers[i][1]);
  console.log(num1 + num2);
}
profile
大器晩成

0개의 댓글