코딩하는 고릴라

[JavaScript] JavaScript로 백준 문제풀이하기 - fs모듈 본문

Javascript

[JavaScript] JavaScript로 백준 문제풀이하기 - fs모듈

코릴라입니다 2023. 11. 12. 03:03
반응형

fs모듈을 이용하는 방법과 readline을 이용하는 방법이 존재하는데, 이번 게시글은 fs모듈에 대해 다룹니다.
 

1. VSCode 파일 설정

VSCode를 킨 후, 한 폴더 내에 다음과 같이 example.txt 파일과 index.js 파일을 준비한다.

 
 - example.txt : 백준에서 예제 입력값들을 넣어 둘 파일
 - index.js : 문제풀이를 위해 코드를 작성할 파일


 

2. 'CodeRunner' Extension 설치하기

 
 - VSCode의 좌측 Extension 메뉴에서 'Code Runner'를 검색 후, 위 사진에서 최상단에 위치한 Code Runner Extension을 설치한다.
 - index.js에서 코드를 작성후 Ctrl + Alt + N 을 누르면 코드를 실행, 그 결과값을 확인할 수 있다.


 

3. fs모듈을 이용해 인풋값 받기

let input = require('fs').readFileSync('example.txt').toString().trim();

 
 - index.js 에서 위와 같이 코드를 작성하게 되면, input 변수에 example.txt에 넣어둔 값들을 저장할 수 있다.
 - 위 처럼 입력값을 받아준 후, input 변수에 split(' ') 혹은 split('\n')을 활용해 배열로 만들어 활용하기 쉽게 할 수 있다.
 - 다음과 같은 입력값을 받았을 때, split을 활용해 입력을 받아봅시다.

// 1. 개행문자로 나눠 입력값을 받았을 때.

let input = require('fs').readFileSync('example.txt').toString().trim().split('\n');

console.log(input);  // [ '4 3\r', '1 4\r', '2 3\r', '3 4' ]

// 2. 개행문자로 나눈 후, 공백으로 다시 한번 나눠 입력값을 받았을 때

let input = require('fs').readFileSync('example.txt').toString().trim().split('\n');

input = input.map((element) => {
    return element.split(' ');
})

console.log(input);  // [ [ '4', '3\r' ], [ '1', '4\r' ], [ '2', '3\r' ], [ '3', '4' ] ]
console.log(input[0]);  // [ '4', '3\r' ]
console.log(input[1]);  // [ '1', '4\r' ] 
console.log(input[2]);  // [ '2', '3\r' ]
console.log(input[3]);  // [ '3', '4' ]

 
 - 위와 같은 방법으로 입력을 받았을 때, 그 값은 string 자료형으로 받아진다. 따라서 숫자로 활용하기 위해서는 parseInt()나 Number() 함수를 활용해야 한다.


 

4. example.txt를 활용할 수 없는 백준에서는 어떻게 받지?

let input = require('fs').readFileSync('/dev/stdin').toString().trim();

 
 - 백준 문제풀이 환경에서는 'example.txt' 부분을 '/dev/stdin' 으로 변경해주면 입력을 받을 수 있다.

반응형

'Javascript' 카테고리의 다른 글

[Javascript] 데이터 타입과 변수  (0) 2023.12.01
[Javascript] 기본 문법  (0) 2023.11.30
[Javascript] 브라우저 동작 원리  (0) 2023.11.30
[Javascript] 개발 환경 - Node.js  (0) 2023.11.30
[Javascript] 자바스크립트란?  (2) 2023.11.30