개발기초

Javascript : 마름모/다이아몬드 별 찍기(for 반복문)

Veams 2022. 11. 9.

1) for문 학습중에 자주 나오는 문제가 있다.

피라미드형 별찍기.

그리고, 이를 응용한 다이아몬드(혹은 마름모)형 별찍기.

 

 

2) 구글에 검색하면 특정 함수를 사용하거나, 절대값을 사용하거나, 나머지를 활용하거나 하는데,

절대값이나 함수를 아직 학습하지 않은 상태에서

초보자들이 문제를 푸는 방법은 다음과 같지 않을까 생각한다.

 

문장 수를 줄이는 등  코드를 경제적으로 사용하면 좋겠지만

뭐가 어쨌든 배운 것을 토대로 기대하는 결과를 만들어내는 것은 일단 중요하지 않을까?

 

 

그래서 원하는 결과가 아래와 같을 때,

 

 

학습과정에서 배웠던  피라미드(삼각형) 별 찍기를 활용하면 된다.

피라미드에 역피라미드를 붙이면 된다. 

 

원하는 마름모의 지름(size)을 6이라고 했을 때. 내가 작성한 코드와 그 결과는 다음과 같다.

<script>
    let output = ''
    const size = 6

    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'
    }
</script>

 

 

 

 

 

이제 피라미드형 별찍기에 사용했던 문장들을 복사하여, 

 

역피라미드형 별찍기 코드를 아래에 추가했다.

<script>
    let output = ''
    const size = 6

    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; i >= 1; 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>

 

 

 

 

 

제대로 표기되지 않은 부분은 오른쪽 이미지를 참조 바랍니다. 공백을 나타낸 부분입니다.

 

 

댓글