코딩테스트 & 문제 풀이

[C]백준_2446 : 별 찍기 - 9

Hicecream 2023. 12. 23. 16:32

2023년 2월 25일에 작성됨

 

https://www.acmicpc.net/problem/2446

 

2446번: 별 찍기 - 9

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 

 

문제 분석

역삼각형과 삼각형 모양을 for문을 활용하여 출력해준다.

 

 

소스 코드 (⭕)

#include <stdio.h>

int main(void)
{
    int n, cnt;

    scanf("%d", &n);

    cnt = n;

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < i; j++)
        {
            printf(" ");
        }
        for (int k = 0; k < 2 * cnt - 1; k++)
        {
            printf("*");
        }
        cnt--;
        printf("\n");
    }
    cnt = n - 2;
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < cnt; j++)
        {
            printf(" ");
        }
        cnt--;
        for (int k = 0; k < 2 * i + 3; k++)
        {
            printf("*");
        }
        printf("\n");
    }
}

 

코드 분석

1. n을 입력받고, 역삼각형을 먼저 출력하기 위해 n번 반복하는 반복문을 세워준다.

    1-1. 0번부터 n-1번까지 1씩 증가하도록 반복하여 공백을 출력해준다.

    1-2. 2*cnt-1개부터 2개씩 줄어들도록 반복마다 cnt--;를 해주어 별을 출력하고, 줄 바꿈을 해준다.

2. 꼭짓점 별 1개를 제외한 삼각형을 출력하기 위해 n-1번 반복하는 반복문을 세워준다.

    2-1. 공백은 n-2번부터 1개씩 줄어들며 출력되므로 cnt에 n-2를 넣어주고 cnt번 반복해준 다음 cnt--;를 해준다.

    2-2. 별은 3개부터 2개씩 늘어나며 출력되므로 2*i+3번을 반복해주는 반복문을 세워주고, 줄 바꿈을 해준다.

 

 

 

end

다음 별 찍기 문제는 아마 건너뛰거나 아주 나중에 풀 것 같다.. 아니ㅜ 계속 브론즈 였다가 갑자기 골드로 건너뛰면..! 깜짝 놀랐다ㅋㅋㅋ 아직은 실버도 제대로 못 풀기 때문에..! 이제 별 찍기는 그만하고 실버 문제 위주로 풀어봐야 겠다.