나의 코드
#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 |