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

백준 10996번 (C++)

FDEE 2020. 8. 21. 14:06

www.acmicpc.net/problem/10996

 

10996번: 별 찍기 - 21

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

 

<답안>

#include <iostream>

using namespace std;

int main() {

    int n = 0, count = 1;

    string printOdd = "", printEven = "";

    cin>>n;

    

    if(n == 1)

        cout<<"*";

    else

    {

        //1부터 2n까지 몇번째인지 계산

        for(int i=1; i<=2*n; i++)

        {

            //홀수번째줄

            if(i%2 == 1)

            {

                while(count<=n)

                {

                    //한줄에서 홀수번째

                    if(count%2 == 1)

                        cout<<"*";

                    //한줄에서 짝수번째

                    else

                        cout<<" ";

                    count++;

                }

            }

            //싹수번째줄

            else

            {

                while(count<=n)

                {

                    //한줄에서 홀수번째

                    if(count%2 == 1)

                        cout<<" ";

                    //한줄에서 짝수번째

                    else

                        cout<<"*";

                    count++;

                }

            }

            count = 1;

            cout<<"\n";

        }

    }

    return 0;

}

 

<설명>

입력수가 1의 경우를 제외한 나머지 수의 경우

총 출력되는 줄의 수는 2*n개이다

출력 라인을 1부터 2n까지 증가하면서 계산한다

출력 라인이 홀수 라인인 경우

   (1)라인에서 홀수번째 칸인 경우 * 출력한다

   (2)라인에서 짝수번째 칸인 경우 빈칸을 출력한다

출력라인이 짝수 라인인 경우

   (1)라인에서 홀수번째 칸인 경우 빈칸을 출력한다

   (2)라인에서 짝수번째 칸인 경우 * 출력한다

 

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

백준 2562번 (C++)  (0) 2020.08.21
백준 10818번 (C++)  (0) 2020.08.21
백준 2446번 (C++)  (0) 2020.08.21
백준 2523번 (C++)  (0) 2020.08.21
백준 10817 (C++)  (0) 2020.08.21