별찍기

const_yang·2021년 9월 14일
0
post-thumbnail

별을 찍어 트리를 만들어보자.
항상 헷갈리는 별찍기 문제를 완전 정복하자.

1) 정사각형 별찍기

for(let i = 0; i < 5; i++)  {
  for(let j = 0; j < 5; j++)  {
    document.write('*');
  }
  document.write('<br>');
}

위 코드를 출력하면 정사각형 별이 찍힌다.

첫 번째 for문은 전체 행의 개수를 결정한다. 0부터 5미만까지이면, 총 5개의 행을 표현한다.
두 번째 for문은 각 행에 찍고 싶은 별의 개수를 결정한다. 즉 열의 개수이다.

2) 직각삼각형 별찍기

for(let i = 0; i < 5; i++)  {
  for(let j = 0; j <= i; j++)  {
    document.write('*');
  }
  document.write('<br>');
}

정사각형을 찍는 식에서 열에 찍히는 별의 개수를 생각해보자.
1) 5개의 행을 만든다.i < 5
2) 각 행에 행의 번호만큼 찍히도록 한다 j < i

3) 왼쪽직각삼각형 별찍기

for (let i = 0; i < 5; i++) {
  for (let j = 4; j > i; j--) {
    document.write("&nbsp");
  }
  // 공백 표기
  for (let j = 0; j <= i; j++) {
    document.write("*");
  // 별 표기
  }
  document.write("<br>");
}

1) 5개의 행을 만든다.i < 5
2) 1행에 4개의 공백 후 별1개, 2행에 3개의 공백 후 별 2개...
3) 외부 for문 내에 2개의 내부 for문으로 공백과 별을 각각 표기했다.

4) 역삼각형 별찍기

for (let i = 0; i < 5; i++) {
  for (let j = 5; j > i; j--) {
    document.write("*");
  }
  document.write("<br>");
}

1) 5개의 행을 만든다.i < 5
2) 1행에 5개의 별(열), 2행에 4개의 별(열)... (i의 수를 이용하면 된다)

5) 왼쪽역삼각형 별찍기

for (let i = 0; i < 5; i++) {
  for (let j = 0; j < i; j++) {
    document.write("&nbsp");
  }
  for (let k = 5; k > i; k--) {
    document.write("*");
  }
  document.write("<br>");
}

1) 5개의 행을 만든다.i < 5
2) 1행에 0개의 공백+1개의 별. 2행에 1개의 공백+4개의 별...
3) 외부 for문 내에 2개의 내부 for문으로 공백과 별을 각각 표기했다.

6) 정삼각형 별찍기

for (let i = 0; i < 5; i++) {
  for (let j = 0; j < 4 - i; j++) {
    document.write("&nbsp"); // 각 행의 공백 표기
  }
  for (let k = 0; k < 2 * i + 1; k++) {
    document.write("*"); // 각 행의 홀수개의 만큼 별 표기 
  }
  document.write("<br>");
}

1) 5개의 행을 만든다.i < 5
2) 1행에 4개의 공백+1개의 별. 2행에 3개의 공백+3개의 별. 3행에 2개의 공백+5개의 별...
3) 외부 for문 내에 2개의 내부 for문으로 공백과 별을 각각 표기했다.

7) 역정삼각형 별찍기

for (let i = 0; i < 5; i++) {
  //4줄 출력
  for (let j = 1; j <= i; j++) {
    document.write("&nbsp");
  }
  for (let j = 9; j >= i * 2 + 1; j--) {
    document.write("*");
  }
  document.write("<br>");
}

1) 5개의 행을 만든다.i < 5
2) 1행에 0개의 공백+9개의 별. 2행에 1개의 공백+7개의 별. 3행에 3개의 공백+5개의 별...
3) 외부 for문 내에 2개의 내부 for문으로 공백과 별을 각각 표기했다.

0개의 댓글