본문 바로가기

개발 일지/개발 일지

내일배움캠프 Day 9

알고리즘을 풀다가 .. 기본 개념이 부족하다고 생각하여 

자바스크립트 공부를 다시 하고 있다. 

 

공부를 하다보니 하나라도 건진게 있다고 생각한 하루 였다.  

드디어 이해할 수 없었던 중첩반복문을  조금이나마 이해했다 라고 생각한 순간이 왔기 때문이다.

 

중첩반복문을 이용한 피라미드 만들기

레벨 1은

 

*

**

***

****

*****

******

*******

********

 

처음엔 감을 못잡았다가 .. 계속해서 보다보니 드디어 원리를 알았다.

일단 완성된 코드 

    <script>
        let output = ''
        for (let i = 1; i < 10; i++) {
            for (let j = 0; j < i; j++) {
                output +='*'               
            }
            output += '\n'
        }
        console.log(output);
    </script>

 

1) output 에 *을 집어 넣을 수 있도록 빈 문자열을 만든다.

2) i 와 j 의 값이 같으면 반복이 돌지 않기 때문에 i를 j 보다 1 크게 만든다.  

3)  j 가 *가 반복문을 돌리면서 하나씩 늘어가게끔  output += "*" 로 설정 

4)  j의 패턴이 끝나면 *이 한칸 내려올수 있게 output += '\n' 설정 

 

패턴 분석 

i 가 1 이고 j 는 0이니 j 는 1번 반복함, 별이 1개 추가됨   ->  띄어 쓰기가 발생 됨  (i = 1 , j = 0) 종료

i가 2 이고  j는 1이니  j 는 2번 반복함, 별이 2개 추가됨   ->  띄어 쓰기가 발생 됨  (i = 2 , j = 1) 종료 

i가 3 이고  j는 2이니  j 는 3번 반복함, 별이 3개 추가됨   ->  띄어 쓰기가 발생 됨  (i = 3 , j = 2) 종료

i가 4 이고  j는 3이니  j 는 4번 반복함, 별이 4개 추가됨   ->  띄어 쓰기가 발생 됨  (i = 4 , j = 3) 종료

i가 5 이고  j는 4이니  j 는 5번 반복함, 별이 5개 추가됨   ->  띄어 쓰기가 발생 됨  (i = 5 , j = 4) 종료

(중략)

i가 9 이고  j는 8이니  j 는 9번 반복함, 별이 9개 추가됨   ->  띄어 쓰기가 발생 됨  (i = 9 , j = 8) 종료

 

i  는 10보다 작아야하니 반복문 종료. 

 

 

 

'개발 일지 > 개발 일지' 카테고리의 다른 글

내일배움캠프 Week 2  (0) 2022.11.14
내일배움캠프 Day 10  (1) 2022.11.11
내일배움캠프 Day 8  (0) 2022.11.09
내일배움캠프 Day 7  (0) 2022.11.08
내일배움캠프 Day 6  (0) 2022.11.07