Home 직각 삼각형 출력하기
Post
취소

직각 삼각형 출력하기

🔖 직각 삼각형 출력하기

📌 문제

문제 설명

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


제한사항
  • 1 ≤ n ≤ 10

입출력 예

입력 #1

1
3

출력 #1

1
2
3
*
**
***
입출력 예 설명

입출력 예 #1

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

✏️ 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 () {
    let star = ''

    for (let i = 0; i < input; i++ ) {
        for(let j = 0; j <= i; j++) {
            star += '*';
        }
        star += '\n';
    }
  
    console.log(star);
});

*를 출력하기 위해 빈 문자열을 할당한 star를 선언하였다. 그후 이중 for문을 활용하여 *을 활용한 직각삼각형을 출력하였다. i가 0일때, j=0이므로 star에 *를 할당한다. j=1일때 조건에 만족하지 않으므로 star에 개행문자인 \n을 할당한다. 이렇게 반복하여 첫번째 줄에는 *가 한개, 두번째 줄에는 2개, 세번째 줄에는 3개를 출력하게 되고 for문이 끝나면 console.log()로 지금까지 할당된 *이 저장된 문자열 변수 star 를 출력한다.

  • node.js 입력받기

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      
      // 모듈 가져오기
      const readline = require('readline');
          
      // readline 모듈을 사용하여 입출력을 위한 인터페이스 생성
      const rl = readline.createInterface({
          input: process.stdin,
          output: process.stdout
      });
          
      // 입력 받을 값을 위한 input 변수 초기화
      let input = [];
          
      //rl 변수
      rl.on('line', function (line) {
      		// 공백을 기준으로 값을 입력받기 위한 코드
          input = line.split(' ');
            
      }).on('close', function () {
        	// 입력이 끝난후 실행할 코드
          console.log(Number(input[0]));
      });
      

🔍 다른 사람 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 다른 사람 풀이
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[0]; i++) {
        console.log('*'.repeat(i));
    }
});

이 풀이에서는 이중 for문을 사용하지 않고, 하나의 for문과 repeat() 메서드로 문제를 해결하였다.

  • str.repeat(count);
    • 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환

💻 출력 결과

image-20221122183934788

This post is licensed under CC BY 4.0 by the author.