알고리즘을 풀다가 .. 기본 개념이 부족하다고 생각하여
자바스크립트 공부를 다시 하고 있다.
공부를 하다보니 하나라도 건진게 있다고 생각한 하루 였다.
드디어 이해할 수 없었던 중첩반복문을 조금이나마 이해했다 라고 생각한 순간이 왔기 때문이다.
중첩반복문을 이용한 피라미드 만들기
레벨 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 |