Javascript는 APS에서는 확실히 주류가 아니다. Javascript로 코딩테스트 공부를 해야겠다고 마음 먹은 순간부터 느낄 수 있다. 입력부터 막막하거든!
기업에서 주로 채택하고 있는 프로그래머스(Programmers) 에서는 Javascript 문제 풀이 환경이 잘 되어있지만, 최근 기업용 코딩테스트 플랫폼으로의 채택률이 커지고 있는 구름(goorm) 이나 국내 최대 APS 사이트인 백준(BOJ) 에서는 입력을 조금 신경써줘야 한다.
일단 백준 입력 방법부터 정리한 뒤, 추후에 구름 입력 방법을 추가하려고 한다.
채점 언어를 Javascript가 아닌, Node.js로 선택한다. Javascript에서는 입력을 받을 때 readline 모듈과 fs 모듈을 사용하는데, 백준에서는 fs 모듈 방식을 권장하고 있다. (readline은 fs에 비해 다양한 내부 메서드가 있지만, 비교적 느리다고 함)
const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
console.log(input);
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);
}
핵심은 .split()의 argument로 들어가는 게 공백이냐, \n이냐 다.
npm install fs
명령어 실행fs.readFileSync('/dev/stdin')
대신 fs.readFileSync('input.txt의 경로')
입력 (단, 백준에 제출할 때는 다시 /dev/stdin 으로 바꿔줄 것)node 알고리즘작성한js파일경로
입력해서 내가 작성한 알고리즘 실행solution(input1){
let answer = input1;
return answer;
}
프로그래머스에서는 사용자가 (입출력이 아닌) 알고리즘 로직 자체를 구현하는 데에 집중할 수 있도록 solution 함수 형태로 입력을 받고 있다. 난 solution 함수 내에서 로직을 구현하기만 하면 된다. 정말 편하다!