백준/백준 단계별 문제풀이

백준 2446번 (C++)

FDEE 2020. 8. 21. 13:06

www.acmicpc.net/problem/2446

 

2446번: 별 찍기 - 9

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

www.acmicpc.net

 

<답안>

#include <iostream>

using namespace std;

int main() {

    int n = 0;

    cin>>n;

    

    for(int i=0; i<n; i++)

    {

        for(int space=1; space<=i; space++)

        {

                cout<<" ";

        }

        for(int star=n*2-1 - 2*i; star>0; star--)

        {

            cout<<"*";

        }

        cout<<"\n";

    }

    for(int i=n-2; i>=0; i--)

    {

        for(int space=1; space<=i; space++)

        {

                cout<<" ";

        }

        for(int star=n*2-1 - 2*i; star>0; star--)

        {

            cout<<"*";

        }

        cout<<"\n";

    }

    return 0;

}

 

<설명>

스페이스의 개수 i를 0부터 n-1까지 증가시키면서 계산한다 (n = 5인 경우 0,1,2,3,4로 계산)

i의 개수에 따라 스페이스를 출력한다

i의 개수에 따라 첫줄의 별 개수인 2*n-1개 에서 2*i만큼 뺀 별을 출력한다 (n=5인 경우 9,7,5,3,1로 계산)

 

그 다음에 스페이스의 개수 i를 n-2부터 0까지 감소시키면서 계산한다 (n=5인 경우 3,2,1,0로 계산)

마찬가지로 i의 개수에 따라 스페이스, 별을 출력한다

 

'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글

백준 10818번 (C++)  (0) 2020.08.21
백준 10996번 (C++)  (0) 2020.08.21
백준 2523번 (C++)  (0) 2020.08.21
백준 10817 (C++)  (0) 2020.08.21
백준 5543번 (C++)  (0) 2020.08.20