혼공스 연습문제
1. 1부터 100까지 숫자를 곱한 값을 계산하는 프로그램 만들기 (p 192)
<script>
let output = 1
for (i = 1; i <= 100; i++) {
output *= i
}
console.log(`1~100의 숫자를 모두 곱하면, ${output}입니다.`)
</script>
"*="을 사용하여 보다 간결히 사용해서 좋다.
2. 중첩 반복문을 사용하여 피라미드 만들기
<script>
let output = ''
const size = 5
// 위쪽
for (let i = 1; i <= size ; i++) {
for (let j = size; j > i; j--) {
output += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
output += '*'
}
output += '\n'
}
// 아래쪽
for (let i = size - 1; i > 0; i--) {
for (let j = size; j > i; j--) {
output += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
output += '*'
}
output += '\n'
}
console.log(output)
</script>
내가 처음에 풀었던 방식과 답지의 방식을 비교했을 때, 답지의 방식이 좀 더 효율적이고 명확한 느낌이 들어 답지의 해설을 분석해보았다. 첫번째 for문에 중첩되어있는 두번째 for문의 경우, 공백과 *을 그려내는 규칙이다. 즉 할당되는 i값이 무엇이냐에 따라, i값이 크냐 작냐에 따라 똑같은 규칙으로 공백과 *을 일관되게 그려내게 된다. 그렇다면 i값을 1로 잡고 점점 키워나가거나, i값을 최대값인 size로 잡고 점점 줄어드는 방식으로 하여 공백과 *을 점점 커지게 할지, 줄어들게 할지 그려낼 수 있다.
'TIL' 카테고리의 다른 글
[20221125] 항해99 주특기 리액트 첫날🍁(feat. 코딩애플 리액트 강의) (0) | 2022.11.25 |
---|---|
[20221112] 자바스크립트 함수에 대한 고찰 (feat. 항해99 프리온보딩 6일차) (0) | 2022.11.12 |
[20221111] 자바스크립트 혼공스 함수 연습문제 (feat. 항해99 프리온보딩 5일차) (0) | 2022.11.11 |
[20221108] 자바스크립트 if, switch 조건문 (feat. 항해99 프리온보딩 2일차) (2) | 2022.11.07 |
[20221107] 자바스크립트 기초 문법 (feat. 항해99 프리온보딩 1일차) (0) | 2022.11.07 |