-
[백준 알고리즘/JavaScript] 1000번 A + B (Feat. 입력받기)IT Study/백준 알고리즘 2023. 12. 14. 13:01728x90
처음으로 JavaScript로 백준을 풀이하기에 앞서, 입력받는 것부터 확인해 보도록 하죠.
<fs Module>
1. 하나의 값 입력받기
// ex) 2 (하나의 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim();
2. 여러 값 입력받기
2-1. 한 줄에 공백으로 구분된 여러 값을 입력받기
// ex) 10 21 3 (한 줄에 공백으로 구분된 여러 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
2-2. 여러 줄에 줄 바꿈으로 구분된 여러 값을 입력받기
// ex) 10 // 21 // 3 // (여러 줄에 줄바꿈으로 구분된 여러 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
2-3. 첫 줄에는 하나의 입력 값을, 두 번째 줄에는 공백으로 구분된 여러 값을 입력받기
// ex) 3 // 10 231 54 // (첫 줄에는 하나의 입력 값을, 두 번째 줄에는 공백으로 구분된 여러 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); const n = Number(input[0]); const inputArr = input[1].trim().split(" ");
2-4. 첫 줄에는 하나의 입력 값을, 두 번째 줄부터는 줄 바꿈으로 구분된 여러 값을 입력받기
// ex) 3 // 10 // 231 // 54 // (첫 줄에는 하나의 입력 값을, 두 번째 줄부터는 줄바꿈으로 구분된 여러 값을 입력받을 때) const fs = require('fs'); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); const n = Number(input[0]); const inputArr = input.slice(1).map(line -> Number(line.trim()));
<readline Module>
1. 기본
// 모듈 가져오기 const readline = require("readline"); // 모듈을 통해 입출력 인터페이스 객체 생성 const rl = readline.createInterface({ input: process.stdin, output: process.stdout, });
1) rl.question을 사용한 코드
- 사용자에게 메시지를 출력하고, 사용자의 입력을 기다린다.
- 한 번에 하나의 입력을 기다릴 때 유용하다.
2) rl.on("line")을 사용한 코드
- rl.on("line")을 사용하여 사용자 입력을 비동기적으로 받는다.
- rl.on("close")는 입력을 종료한 후 실행할 코드를 적는다.
- rl.close()는 입력을 종료하는 명시적인 호출.
- rl.on("line")은 입력을 받을 때마다 실행되며, 입력이 종료될 때까지(종료 조건 만족할 때까지) 계속 실행된다.
- rl.close() 호출 이전에 다수의 입력을 받을 수 있다.
- 여러 줄의 입력을 받을 때 유용하다.2. 원소 하나 입력받기
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on("line", function (line) { const input = line; console.log("입력한 원소 : ", input); rl.close(); }); // > 1 // 입력한 원소 : 1
3. 한 줄에 여러 원소를 띄어쓰기 기준으로 입력받기
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on("line", function (line) { const inputArr = line.split(" "); console.log("입력한 원소 배열 : ", inputArr); rl.close(); }); rl.on("close", () => { process.exit(); }) // > 1 2 3 // 입력한 원소 배열 : [ '1', '2', '3' ]
4. 여러 줄에 여러 원소를 줄바꿈 기준으로 입력받기
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const inputLines = []; rl.on("line", function (line) { inputLines.push(line); // exit 입력 시, 종료 함수 호출 if (line === "exit") { rl.close(); } }); rl.on("close", function () { console.log("입력한 원소 배열 : ", inputLines) console.log("입력한 개별 원소 : "); for (const line of inputLines) { const lineArr = line.split(" "); console.log(lineArr); } process.exit(); }); // > 1 23 4 // > 1 5 6 // > 3 4 // > exit // 입력한 원소 배열 : [ '1 23 4', '1 5 6', '3 4', 'exit' ] // 입력한 개별 원소 : // [ '1', '23', '4' ] // [ '1', '5', '6' ] // [ '3', '4' ] // [ 'exit' ]
문제에 대한 결과 코드 (fs로 풀이)
const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split(" "); const A = Number(input[0]); const B = Number(input[1]); console.log(A + B);
'IT Study > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘/Kotlin] 2839번 설탕 배달 (0) 2023.12.21 [백준 알고리즘/Kotlin] 11047번 동전 0 (feat. 노선 정했다... ) (1) 2023.12.20 [백준 알고리즘] 첫 사용법 (초기 컴파일 오류, 언어 설정하기) (0) 2023.03.20 [백준 알고리즘/Java] 10811번 바구니 뒤집기 (0) 2023.03.14 [백준 알고리즘/Java] 2439번 별 찍기 - 2 (0) 2023.03.14