백준 알고리즘

[C] 백준 2442번: 별 찍기 - 5

Coder101 2022. 5. 31. 14:01

출처: 백준 알고리즘

 

나의 코드

#include <stdio.h>

 int main(void)
 {
     int N = 0;
     int i, j;

     scanf("%d", &N);

     for(i = 1; i <= N; i++) //개행을 위한 반복문
     {
         for(j = N - i; j > 0; j--) // 공백 출력 위한 반복문
             printf(" ");

         for(j = 0; j < 2 * i - 1; j++) // * 출력 위한 for문
             printf("*");

         printf("\n");
     }
     return (0);
 }

 

여기서 조심해야할 것은 가장 첫번째 for문 부분이다. 

위의 코드에서는 

for(i = 1; i <= N; i++) 로 작성되어 정상적으로 실행이 되는데 

처음에 for(i = 0; i < N; i++)로 평소처럼 i의 초기값을 0으로 설정하였을 때에는 이상하게 작동 되는 것을 확인할 수 있었다. 

1로 시작할 때와 0으로 시작할 때 무슨 차이가 있는 것일까 생각을 해보니 i가 0으로 시작하게 되면

첫 for문 안에 있는 두 개의 다른 for문들의 i 또한 0으로 설정이 되면서 우리가 원하는 방향으로 코드가 흘러가지 않는 것을 확인할 수 있다. 

이 부분에 유의하면서 풀어나간다면 별다른 어려움은 없을 문제였다.

'백준 알고리즘' 카테고리의 다른 글

[C] 백준 2444번: 별 찍기 - 7  (2) 2022.05.31
[C] 백준 2443번: 별 찍기 - 6  (1) 2022.05.31
[C] 백준 2588번: 곱셈  (4) 2022.01.31
[C] 백준 1008번: A/B  (2) 2022.01.31
My first Baekjoon Online Judge  (2) 2022.01.31