1. VScode(로컬 IDE)에서 디렉토리 셋팅하기

: 원하는 디렉토리안에 javascript파일과 txt 파일을 생성한다.

1) 이와 같이 test.txt 파일을 만들어주고, 테스트하고싶은 input을 파일에 넣는다.

input을 넣는 예시

2) 코드를 작성하는 파일 상단에 fs모듈의 readFileSync를 사용해서 input파일(test.txt)의 루트를 설정해준다.

let fs = require('fs');
let input = fs.readFileSync('./BOJ/union_mentoring/2_binary_search/test.txt').toString().trim().split('\n');
let [N, M] = input.shift().split(' ') //[ '4 7', '20 15 10 17' ]이렇게 생긴배열에서 shift하면 4,7이 나가서 N, M에 담기고, input에는 밑에 것들이 배열로 담김 like [ '20 15 10 17' ]
// console.log(N,M); // M자리에 값이 있으니까 들어가는 것임.
// console.log(input);

📍 이 때, trim()으로 공백을 없애서 넣는 것이 중요함 (별 다섯 개🌟🌟🌟🌟🌟) 

=> 이것 때문에!!!!!!!! 로직이 틀린건지 VScode에서 몇 번을 확인하고, 백준에서 몇 번을 틀렸습니다를 받았는데.....! (눈물)

=> trim() 이 무엇인지 궁금한 사람은 공식문서 참고!, shift()도 함께 봐두면 좋음.

https://developer.mozilla.org/ko/docs/orphaned/Web/JavaScript/Reference/Global_Objects/String/Trim

 

String.prototype.trim() | MDN

trim() 메서드는 문자열 양 끝의 공백을 제거합니다. 공백이란 모든 공백문자(space, tab, NBSP 등)와 모든 개행문자(LF, CR 등)를 의미합니다.

developer.mozilla.org

 

예시로 console에 찍어봤을 때...

 

2. 백준에서 코드를 확인할 때.

: 파일을 불러오는 부분의 루트를 '/dev/stdin' 으로 변경하면 됨. 간단하구만~

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
let [N, M] = input.shift().split(' ')

++ 알려준 서영이에게 감사를...

 

+ Recent posts