TIL/알고리즘

아주 쉬운 알고리즘 - 직각삼각형 출력하기

saramnim 2023. 3. 29. 14:13
728x90

기초 알고리즘에 대해 알아보자!

Q. 직각삼각형 출력하기

문제 설명

"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.

제한 사항

  • 1 ≤ n ≤ 10

입출력 예

입력 #1

3

출력 #1

*
**
***

입출력 예 설명

  • 입출력 예 #1
    n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.

solution.js

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = 0

rl.on('line', function (line) {
    input = line;
}).on('close', function () {
    let num = Number(input);
    for(let i = 1; i <= num; i++) console.log("*".repeat(i));
});

이 문제의 경우 초기 문제 구성이 아래와 같다.

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 () {
    console.log(Number(input[0]));
});

우리는 여기서 윗 부분은 그대로 냅두고

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    console.log(Number(input[0]));
});

이 부분만 고치면 되는데, 나는 먼저 close 부분의 function을

.on('close', function () {
    let num = Number(input);
    for(let i = 1; i <= num; i++) console.log("*".repeat(i));
});

이렇게 바꾼 후 채점했다.

이 경우에는 테스트케이스는 통과하나 제출 후 채점하기의 테스트 3번이 틀리는 것을 볼 수 있다.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = 0

rl.on('line', function (line) {
    input = line;
}).on('close', function () {
    let num = Number(input);
    for(let i = 1; i <= num; i++) console.log("*".repeat(i));
});

이는 input을 초기 코드 구성과 같이 굳이 배열로 받아 split하지 말고 처음부터 숫자로 받으면 해결된다!

728x90
반응형