
문제 설명
""의 높이와 너비를 1이라고 했을 때, ""을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
처음보는 readline이라는 것이 나왔다.
이것에 대해 대략적으로 공부를 해야 문제를 풀 수 있었다.
readline 이란?
Readable Stream에서 한번에 한줄씩 데이터를 읽기 위한 인터페이스를 제공하는 모듈
const readline = require('readline')
require() 함수를 통해 readline 모듈을 불러온다.
interface 객체를 이용하여 콘솔에서 표준 입출력 처리를 할 수 있다.
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
stdin은 standard input의 약자
stdout은 standard output의 약자
rl.on('line', (line) => {
// 입력 받은 값을 처리하는 코드 //
rl. close();
});
rl.on('close', () => {
// 입력이 끝나고 실행하는 코드 //
process.exit();
});
on() 메서드를 활용하여 이벤트와 콜백함수를 전달'line' 입력 받은 값을 한 줄씩 읽어 문자열 타입으로 전달하는 역할을 하는 이벤트rl.close() 인터페이스를 종료. 무한히 입력받는 것을 방지한다.close를 작성하여 입력이 끝난 후 실행되어야 할 함수를 작성함.그래서 위의 내용으로 이번 문제를 풀어보자
require() 함수를 통해 readline 변수로 readline 모듈을 불러온다.createInterface() 함수를 통해 rl 변수로 input, output interface를 생성합니다. on 메서드를 활용하여 'line' 이벤트를 콜백함수 매개변수로 전달해서 입력받은 값을 한줄씩 읽어 문자열 타입으로 저장할 수 있게 함수를 만듭니다.*이 추가로 생성되는 것을 확인할 수 있습니다. const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
for(let i = 1; i <= input; i++)
console.log('*'.repeat(i));
});