기본 코드 (Baekjoon Online Judge 도움말)
var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().split(' ');
var a = parseInt(input[0]);
var b = parseInt(input[1]);
console.log(a+b);
line 1 - fs 모듈(= File System module)를 불러온다.
fs module이란, 파일 처리와 관련된 전반적인 작업을 하는 모듈
line 2 - fs 모듈의 readFileSync(동기적으로 파일을 읽는 함수)를 사용하여 stdin(표준입력) 파일을 불러온다.
line 3, 4 - 읽어드린 입력 내용을 형변환하여 변수에 저장한다.
그러나, 위의 코드는 제출용이기에 vscode에서 입출력을 할 땐 txt 파일을 통해서 입출력을 해야한다.
그래서 문제풀이용, 제출용으로 용도에 맞게 여러번 수정하지 않아도 되는 코드를 발견하였다.
문제 풀이용 - vscode에서 input.txt 파일을 만든 후 input.txt에 입력값을 넣고 테스트한다.
제출용 - 코드 수정 없이 제출한다.
const filePath = `linux` === process.platform ? `dev/stdin` : '테스트 파일';
const input = require('fs').readFileSync(filePath).toString().trim().split(` `);
1) 한줄 입력
const filePath = `linux` === process.platform ? `dev/stdin` : 'input.txt';
/* case 1. 해달별 */
const numbers = require('fs').readFileSync(filePath).toString().trim().split(``);
/* case 2. 1234 */
const numbers = require('fs').readFileSync(filePath).toString().trim().split(``).map(Number);
2) 공백으로 값을 구분지어 한줄 입력
const filePath = `linux` === process.platform ? `dev/stdin` : 'input.txt';
/* case 1. 해 달 별 */
const numbers = require('fs').readFileSync(filePath).toString().trim().split(` `);
/* case 2. 1 2 3 4 5 6 */
const numbers = require('fs').readFileSync(filePath).toString().trim().split(` `).map(Number);
3) 여러 줄 입력
const filePath = `linux` === process.platform ? `dev/stdin` : 'input.txt';
/*
case 1.
5
1 2 3 4 5
*/
const [N, numbers] = require('fs').readFileSync(filePath).toString().trim().split(`\n`);
const numArr = numbers.split(` `).map(Number)
/*
case 2.
5 1
1 2 3 4 5
*/
const [N, K, ...numbers] = require('fs').readFileSync(filePath).toString().trim().split(`\n`);
const numArr = numbers.split(` `).map(Number)
'Coding Test' 카테고리의 다른 글
[백준][JS] 9012번: 괄호 (0) | 2023.05.12 |
---|---|
[백준][JS] 2563번: 색종이 (0) | 2023.05.03 |