[2022.07.24] 자바스크립트 별찍기 (repeat 함수)

REASON·2022년 7월 24일
2

STUDY

목록 보기
82/127

repeat()

repeat 함수는 문자열을 주어진 횟수 만큼 반복하여 반환하는 함수이다.

*
**
***
****
*****
for(let i = 1; i<=5; i++){
    const star = '*';
    console.log(star.repeat(i));
}

repeat이 1부터 시작해야 처음에 별 1개를 찍을 수 있으므로
for문의 i변수 초기값을 1로 설정하였다.

*****
****
***
**
*
for(let i=5; i>= 1; i--){
  console.log('*'.repeat(i));  
}

이번 별 찍기는 5개부터 시작된다. 1개씩 감소하고 있기 때문에 반복문이 1차례 돌 때마다 1씩 감소시켜주면 된다.

*****
 ****
  ***
   **
    *
for(let i = 5; i > 0; i--){
	console.log(" ".repeat(5-i) + "*".repeat(i));
}

별이 5개로 시작해서 1개씩 감소하고 있다.
공백은 0개로 시작해서 1개씩 증가된다.
첫번째 줄에 별을 5개 먼저 찍어야 하므로 초기값을 5로 설정해서 i값을 1씩 감소시키도록 하였다.

    *
   **
  ***
 ****
*****
for(let i = 1; i <= 5; i++){
	console.log(" ".repeat(5-i) + "*".repeat(i));
}

이번에는 공백이 4>3>2>1>0
별이 1>2>3>4>5개가 된다.
별 개수를 기준으로 하기 위해 초기값을 1로 설정했다.
앞의 3번 문제와 비슷하게 풀면 된다.

   *
  ***
 *****
*******
for(let i = 1, j = 0; i<=4; i++){
  	console.log(" ".repeat(4 - i) + "*".repeat(i + j));
  	j = j + 1;
}

별이 1>3>5>7로 증가
공백이 3>2>1>0으로 감소

별이 1이후 2개씩 증가해야 하므로 j라는 변수를 하나 더 사용해서 2씩 증가할 수 있도록 작성해주었다.


다음에 풀어볼 문제

마름모는 고민을 오래 해봐야 할 것 같아서 아직 풀지는 못했다.
공백이 2>1>0>1>2 , 별이 1>3>5>3>1

   *  
  ***
 *****
  ***
   *

별찍기 문제 너무 어렵다 흑흑 ㅠ


참고 자료
MDN String.prototype.repeat()

0개의 댓글