-
[백준 Node.js] 10950번 A+B-3To infinity/Coding Practice 2021. 6. 20. 10:11
2021.06.20
Question
Answer code
let fs = require('fs'); let input = (process.platform === 'linux' ? fs.readFileSync('/dev/stdin').toString() : `5 1 1 2 3 3 4 9 8 5 2 ` ).split('\n'); for(let i=1; i<=input[0]; i++){ let data = input[i].split(' ').map((el) => +el); console.log(data[0]+data[1]);
let input에 쓴 로직은 업로드 전 VS CODE에서 테스트해보기 위해 짜여진 코드다. 데구리님 블로그에서 참고했다.
백준에서 node.js 입력 방법은 여기를 참고하면 된다. [Node.js] 백준에서 코드연습 하기 (node.js 입출력방법)
How to solve?
1. input요소를 줄바꿈(\n)으로 구분해주고 해당 요소를 배열의 요소를 공백으로 구분해서 각각 더해준다.
2. 배열의 각 요소를 공백기준으로 더 작은 요소로 나눈 후 각 요소를 인덱스로 가져와서 더해준다.
I'm so curious!
Q. split('\n') 함수를 썼을 때 어떻게 값이 출력될까?
A. 줄바꿈을 기준으로 각 라인(테스트케이스)마다 하나의 요소로 들어온다.
// 입력 let input = (`5 1 1 2 3 3 4 9 8 5 2 ` ).split('\n'); console.log(input); // 출력 [ '5', '1 1', '2 3', '3 4', '9 8', '5 2', '' ]
Q. console.log의 위치는 중요할까?
A. 그렇다. console.log를 for문안에 함께 넣어줘야 모든 값이 출력된다. 만약 for문 밖에 두면 제일 마지막 결과값만 나오게 된다. 변수의 스코프에 대해 다시한번 공부하게 된다.
//입력 input = ['1 1', '2 3'] //출력 // for문 내에서 let변수 사용 for(let i=1; i<=input[0]; i++){ let data = input[i].split(' ').map((el) => +el); } console.log(data[0]+data[1]); //ReferenceError: data is not defined // for문 내에서 let변수 사용 let data = []; for(let i=1; i<=input[0]; i++){ let data = input[i].split(' ').map((el) => +el); } console.log(data[0]+data[1]); //NaN (전역변수와 지역변수 스코프가 나뉘니까) // for문 내에서 var변수 사용 for(let i=1; i<=input[0]; i++){ var data = input[i].split(' ').map((el) => +el); } console.log(data[0]+data[1]); //5 (가장 마지막 값만 나옴) // for문 내에서 let변수 사용, for문 내 출력 for(let i=1; i<=input[0]; i++){ let data = input[i].split(' ').map((el) => +el); console.log(data[0]+data[1]); } //2 //5 //모든 값이 다 나옴 // for문 내에서 var변수 사용, for문 내 출력 for(let i=1; i<=input[0]; i++){ var data = input[i].split(' ').map((el) => +el); console.log(data[0]+data[1]); } //2 //5 //모든 값이 다 나옴
'To infinity > Coding Practice' 카테고리의 다른 글
[백준 Node.js] 10871번 X보다 작은 수 (새로운 문법 시도!) (0) 2021.06.21 [백준 Node.js] 11021번 A+B -7 (테스트케이스) (0) 2021.06.20 [백준 Node.js] 2741번 N 찍기 (0) 2021.06.20 [백준 Node.js] 15552번 빠른 A+B (0) 2021.06.20 [백준 Node.js] 8393번 합 (1~n까지 합 구하기) (0) 2021.06.20