반응형
백준 알고리즘 1단계 입출력과 사칙연산
01. We love kriii
console.log('강한친구 대한육군');
console.log('강한친구 대한육군');
02. 고양이
console.log(`\\ /\\`);
console.log(` ) ( ')`);
console.log(`( / )`);
console.log(` \\(__)|`);
03. 개
console.log(`|\\_/|`);
console.log(`|q p| /}`);
console.log(`( 0 )"""\\`);
console.log('|"^"` |');
console.log(`||\_/=\\\\\_\_|`);
04. 사칙연산
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
});
rl.on('line', line => {
const input = line.split(' ');
const division = Number(input[0]) / Number(input[1]);
console.log(Number(input[0]) + Number(input[1]));
console.log(Number(input[0]) - Number(input[1]));
console.log(Number(input[0]) \* Number(input[1]));
console.log(Math.floor(division));
console.log(Number(input[0]) % Number(input[1]));
rl.close();
})
.on('close', () => {
process.exit();
});
05. 나머지
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
});
rl.on('line', line => {
const input = line.split(' ');
const a = Number(input[0]);
const b = Number(input[1]);
const c = Number(input[2]);
console.log((a + b) % c);
console.log(((a % c) + (b % c)) % c);
console.log((a * b) % c);
console.log(((a % c) * (b % c)) % c);
rl.close();
}).on('close', () => {
process.exit();
});
06. 곱셈
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
});
const input = [];
rl.on('line', line => {
if (input.length === 2) rl.close();
input.push(line);
}).on('close', () => {
const a = Number(input[1][2]);
const b = Number(input[1][1]);
const c = Number(input[1][0]);
console.log(Number(input[0] * a));
console.log(Number(input[0] * b));
console.log(Number(input[0] * c));
console.log(Number(input[0]) * Number(input[1]));
process.exit();
});
고양이와 개를 출력할 때부터 재미가 붙어서 1단계를 한번에 다 풀게 되었다. 게임하듯이 채워나가는 느낌이라 재밌게 플레이했다.
프로그래머스에선 입출력에 대해 신경쓰지 않아도 돼서 알고리즘 푸는 사이트는 원래 다 그런 줄 알았다. 사칙연산때부터 뭔가 이상하다 싶더니 백준은 Node.js 환경에서 입력부분도 구현해야 한다.
Node.js의 입출력은 readline 모듈을 통해 해결했다.
The readline module provides an interface for reading data from a Readable stream (such as process.stdin) one line at a time. It can be accessed using: - Node.js 공식문서
공식문서에 위와 같이 나와있는데 "데이터를 읽을 수 있는 인터페이스를 제공한다." 정도인 것 같다. 결국 사용은 다음과 같다.
const readline = require('readline');
그 다음 예제가 아주 친절하게 나와있다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('What do you think of Node.js? ', (answer) => {
// TODO: Log the answer in a database
console.log(`Thank you for your valuable feedback: ${answer}`);
rl.close();
});
// 입력 : What do you think of Node.js? amazing(입력 부분)
// 출력 : Thank you for your valuable feedback: amazing
이것저것 만져보다 readline.createInterface()를 통해 인터페이스를 생성하고 rl.close()로 입력을 종료하는 것까지 알게 되었고 이정도만 알아도 1단계 문제는 풀 수 있었다.
프로그래머스가 사용자 경험이 굉장히 좋다는 걸 깨달았다. 그런데 백준은 백준대로 장점도 있고 적응 좀 되더니 나름 매력(?)이 있다. 구현사항도 쉽고 초반이라 그런지 모르겠지만 시간 가는 줄 모르고 풀었다.
반응형
'Algorithm' 카테고리의 다른 글
[백준] 단계별로 풀어보기 3단계 | Node.js (0) | 2021.06.26 |
---|---|
[백준] 단계별로 풀어보기 2단계 | Node.js (0) | 2021.06.26 |
[프로그래머스] 가장 큰 정사각형 찾기 | JavaScript (0) | 2021.06.23 |
[Algorithm]다이나믹 프로그래밍(Dynamic Programming) (7) | 2021.06.22 |
[프로그래머스] 124 나라의 숫자 | JavaScript (0) | 2021.06.19 |