46일차 - 2022.04.18
Baekjoon에서 문제풀이
1) 문제 : 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. 각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.
고민과정
기존 풀이방법이 큰 틀의 방향성은 맞다고 생각해서 틀린 부분을 천천히 보았는데
풀이
1.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
let a = "";
let T = parseInt(input[0]);
for(let i = 1; i<=T ; i++) {
let A = input[i].split(' ')[0];
let B = input[i].split(' ')[1];
a += parseInt(A) + parseInt(B) + `\n`;
}
console.log(a);
이때 줄마다 출력시키기 위해 \n를 쓸때 ''와 `` 둘 모두 사용가능한 점 알게됨.
그리고 문제에 나와있는 1이상 1000이하의 조건을 다른 문제처럼 if문을 이용하려 했는데 오류가 발생하는데 원인을 아직 정확히 모르는 상태
- readline 모듈로도 시도해보았는데
const readline = require('readline');
const rl = readline.createInterface({
input : process.stdin,
output : process.stout,
});
const input = [];
rl.on('line', function(line) {
input.push(line);
}).on('close', function() {
let a = '';
const T = parseInt(input[0]);
for(let i=1; i<= T; i++) {
let A = input[i].split(' ')[0];
let B = input[i].split(' ')[1];
a += parseInt(A) + parseInt(B) + `\n`;
}
console.log(a);
process.exit();
});
동일하게 if문을 추가할때 오류 발생. 문제에 주어진 조건을 추가하지 않아도 정답이 되는게 BaekJoon을 하면서 의아한 부분이긴 하지만 넣으려하는데 안되는건 처음이라 더 고민해보겠음.
- a를 나타낼때 기존에 시도하던
a += `${A+B} + \n`;
는 출력초과가 뜨는데
a += parseInt(A) + parseInt(B) + `\n`;
로 하니 해결됨.
출력초과는 너무 많은 출력을 요했을때 발생한다는데 정확한 차이를 설명 못하겠음. 더 노력요망.
하루 돌아보며
말 그대로 문제는 맞혔지만 이게 중요한게 아니고 왜 이렇게 되고 얘는 왜 안되는지를 알아야 되는데 이부분이 해결이 안됨.
24일차에 했던 콜백함수를 기본서로 읽어보았는데 다시 학습이 필요할것 같아 내일 이어서 학습예정
공부 출처
위의 내용은 공부중 본인이 이해한 내용으로 몇몇 틀린 내용이 있을 수 있습니다.
회독 혹은 공부간 틀린 내용 발견시 수정하겠습니다
Author And Source
이 문제에 관하여(46일차 - 2022.04.18), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@abo7326/46일차-2022.04.18저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)