일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 세그먼트 트리
- styled-components
- Next.js
- 수학
- js
- 회고
- 기본 문법
- 모던 자바스크립트 튜토리얼
- HTML5
- 개발 회고
- 코딩일기
- 자바
- 오블완
- JavaScript
- 시뮬레이션
- 해시를 사용한 집합과 맵
- 엔트리포인트
- react-three/fiber
- poiemaweb
- 브루트포스
- 티스토리챌린지
- 구현
- State
- 자바스크립트
- 자료 구조
- 토이 프로젝트
- 백준
- three.js
- REACT
- 프론트엔드
Archives
- Today
- Total
코딩하는 고릴라
[JavaScript] JavaScript로 백준 문제풀이하기 - fs모듈 본문
반응형
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 |