문제 번호
알고리즘 분류
수학, 구현, 사칙연산
문제 풀이
알고리즘은 어렵지 않았지만 테스트케이스 마다 console.log 를 사용해서 출력한다면 시간초과에 걸리는 문제였다.
해당 문제를 해결하기 위해서 다음의 링크를 참고하였다.
기본적인 입출력은 동일하다. readline 모듈을 사용한다.
const testline = require('readline');
const rl = testline.createInterface({
input: process.stdin,
output: process.stdout
});
입력을 받을때는 테스트케이스는 한줄에 하나의 숫자만 주어진다는 것을 이용했다.
한줄을 입력받은 input 이라는 배열의 길이가 1이면 테스트케이스로 사용하는 방법을 선택했다.
rl.on('line', (TestN) => {
const input = TestN.split(' ');
if (input.length === 1) {
TestCase = input[0];
}
input 배열의 길이가 1이 아닐때는 숫자 A와 B가 주어진 것이기 때문에 input 배열의 0번 인덱스에 해당하는 값과 1번 인덱스에 해당하는 값을 A와 B로 사용하였다.
else {
var a = parseInt(input[0]);
var b = parseInt(input[1]);
Solution(a, b);
TestCase--;
}
이후에 모든 테스트케이스에 대한 답을 answer 이라는 문자열에 개행문자와 함께 저장한다.
function Solution(a, b) {
answer += a + b + '\n';
}
전체코드
const testline = require('readline');
const rl = testline.createInterface({
input: process.stdin,
output: process.stdout
});
let answer = '';
let input = [];
let TestCase = 0;
rl.on('line', (TestN) => {
const input = TestN.split(' ');
if (input.length === 1) {
TestCase = input[0];
}
else {
var a = parseInt(input[0]);
var b = parseInt(input[1]);
Solution(a, b);
TestCase--;
}
if (TestCase === 0) rl.close();
});
rl.on('close', () => {
console.log(answer);
process.exit();
});
function Solution(a, b) {
answer += a + b + '\n';
}
- 입력을 받으면서 헷깔렷던 내용.
특이사항
C++에서는 정말 쉽게쉽게 입출력을 사용했는데 JS에서는 까다로운 부분이 많이 느껴진다.
아직 익숙하지 않아서라고 생각하고싶다.......
'Algorithm > BaeKJoon' 카테고리의 다른 글
[JS][백준]11021_ A+B - 7 (0) | 2021.07.30 |
---|---|
[JS][백준]2741_N 찍기 (0) | 2021.07.30 |
[JS][백준]8393_합 (0) | 2021.07.29 |
[JS][백준]10950_A+B-3 (0) | 2021.07.29 |
[JS][백준]2739_구구단 (0) | 2021.07.27 |