프로그래머스 - 직각삼각형 출력하기
· 약 2분
목적
Javascript Algorithm 문제풀이 과정을 기록합니다. 나만의 해결방법을 공유합니다.
문제
"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
제한사항
- 1 ≤
n≤ 10
입출력 예
입력 #1
3
출력 #1
*
**
***
n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출 력합니다.
풀이
solution.js
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 () {
// n으로 받은 값 저장
// for문으로 n까지 반복
// 내부에서 repeat 메서드 활용하여 "*"을 i만큼 반복
});
결과
실행 결과
테스트 1
입력값 〉 "3"
기댓값 〉 "*
**
***"
실행 결과 〉 테스트를 통과하였습니다.
출력 〉
*
**
***
테스트 결과 (~˘▾˘)~
1개 중 1개 성공
해결 방법
solution.js
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 () {
// n으로 받은 값 저장
const n = Number(input[0]);
// for문으로 n까지 반복
for (let i = 1; i <= n; i++) {
// 내부에서 repeat 메서드 활용하여 "*" i만큼 반복
console.log("*".repeat(i));
}
});
n은 입력받은 값 3이 출력되었다. 이것을 활용하여 1, 2, 3 ... n 만큼 반복해서 출력해줘야 한다.
1
---
2
---
3
그래서 for문을 사용했고, i는 증가연산자로 n까지 증가하기 때문에 해당하는 라인의 숫자를 기억할 수 있다.
하지만 i 만큼 "*"를 출력하기 위해 다른 대부분의 풀이에서는 또 for문이 등장하여 이중포문의 형태로 문제풀이가 되었다.
나는 이중포문을 좋아하지 않기 때문에 분명 number만큼 반복하는 내부함수 있을 것 같아 바로 구글링을 통해 repeat라는 함수를 활용했고 원하는 결과값을 얻을 수 있었다.
최종 정리
repeat함수를 이용해 number만큼 입력한 문자열을 반복할 수 있다.
