https://github.com/hoinlee-moi/algorithm_prac
오늘 알고리즘은 백준에서 풀어보았는데 node.js를 이용하여 풀어봤다.
앞서 python으로 풀던 것보다 훨씬 문법이나 구성에 있어서 좀 더 편한 느낌이라 꽤 괜찮았는데 답안을 제출할 때 계속 틀렸다고 나와서 엄청 당황했다.
분명 vscode 안에서 run하고 디버깅 할 땐 아무 문제없이 출력값이 나왔는데 제출만 하면 아니라고하니.. 그래서 여기저기 물어보고 찾아보니 Java를 배울 때 썼던 scanner 기능 같은 걸 써야한다고 했다.
그래서 찾아보니 fs와 readline이라는 node.js에서 쓸 수 있는 방법이 있는데 후에 알고리즘 문제를 더 들어갈 때 시간을 아끼려면 fs가 좀 더 효율적이라 하여 fs를 찾아 적용해보니 다행히도 맞췄습니다란 글을 볼 수 있었다.
뭔가 옛날 수학문제 푸는 느낌으로 재밋게 풀고 있고 node.js로 변경하니 javascript 언어의 문법들을 꼼꼼히 공부할 수 있어 더욱 좋은 것 같다.
다만 너무 알고리즘에 모든 시간을 투자하는 것이 아닌 javascript 심화 부분과 react나 vue에 관련된 부분들의공부를 같이 진행해야 할 것 같다.
이력서, 포폴 준비도 해야하고 할 게 많은데 요즘 더워서 진이 빠지고 화면을 너무 오래 보고 있어서인지 눈이 자꾸 감긴다.
적당히 컨디션 맞춰가며 하자.
알고리즘 원격 강의 수강
백준 알고리즘 문제 node.js를 이용하여 풀기
한 줄로 입력을 받을 때
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
let num = Number(input);
for (let i = 1; i <= num; i++) {
console.log(i);
}
여러 줄로 입력을 받을 때
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);
}
[출처]https://nyang-in.tistory.com/156
정리본
1. 하나의 값을 입력받을 때
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim();
2. 공백으로 구분된 한 줄의 값들을 입력받을 때
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
3. 여러 줄의 값들을 입력받을 때
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
4. 첫 번째 줄에 자연수 n을 입력받고, 그 다음줄에 공백으로 구분된 n개의 값들을 입력받을 때
const fs = require('fs');
const [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split(/\s/);
5. 첫 번째 줄에 자연수 n을 입력받고, 그 다음줄부터 n개의 줄에 걸쳐 한 줄에 하나의 값을 입력받을 때
const fs = require('fs');
const [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
6. 하나의 값 또는 공백으로 구분된 여러 값들을 여러 줄에 걸쳐 뒤죽박죽 섞여서 입력받을 때
ex) n 입력 - 공백으로 구분된 n개의 값 입력 - m 입력 - 여러 줄에 걸쳐 m개의 값 입력
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split(/\s/);
const n = input[0];
const n_arr = input.slice(1, n+1);
const [m, ...m_arr] = input.slice(n+1);