ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준 2448] 별 찍기 - 11
    알고리즘/백준 2019. 3. 20. 20:27

    생각보다 난 별 찍기를 못하는 것 같다.

    꽤 오랜시간 동안, 해맨 문제.


    출처 : https://www.acmicpc.net/problem/2448

    문제

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

    입력

    첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10)

    출력

    첫째 줄부터 N번째 줄까지 별을 출력한다.

    예제 입력 1

    24
    

    예제 출력 1

                           *                        
                          * *                       
                         *****                      
                        *     *                     
                       * *   * *                    
                      ***** *****                   
                     *           *                  
                    * *         * *                 
                   *****       *****                
                  *     *     *     *               
                 * *   * *   * *   * *              
                ***** ***** ***** *****             
               *                       *            
              * *                     * *           
             *****                   *****          
            *     *                 *     *         
           * *   * *               * *   * *        
          ***** *****             ***** *****       
         *           *           *           *      
        * *         * *         * *         * *     
       *****       *****       *****       *****    
      *     *     *     *     *     *     *     *   
     * *   * *   * *   * *   * *   * *   * *   * *  
    ***** ***** ***** ***** ***** ***** ***** *****


    소스코드

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include<iostream>
     
    using namespace std;
     
    char star[3072][6144];
     
    void draw(int x, int y, int size){
        if(size != 3){
            draw(x, y, size/2);                        // 현재 위치 별 그림  
            draw(x-size/2, y+size/2size/2);        // 왼쪽 아래 별 그림     
            draw(x-size/2+size, y+size/2,size/2);    // 오른쪽 아래 별 그림 
        }
        else {
            star[y][x] = '*';
            star[y+1][x-1= '*';
            star[y+1][x] = ' ';
            star[y+1][x+1= '*';
            star[y+2][x-2= '*';
            star[y+2][x-1= '*';
            star[y+2][x] = '*';
            star[y+2][x+1= '*';
            star[y+2][x+2= '*'
        }
        return;
    }
    int main(){
        int n;
        cin >> n;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < 2*n-1; j++){
                star[i][j] = ' ';             // 공백 초기화 
            }
        }
        draw(n-1,0,n);
        for(int i = 0; i < n; i++){
            for(int j = 0; j < 2*n-1; j++){
                cout << star[i][j];
            }
            cout << '\n';
        }
        return 0;
    }
    cs



    ※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다.

    반응형

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

    [백준 1517] 버블 소트  (0) 2019.03.21
    [백준 1074] Z  (0) 2019.03.21
    [백준 2447] 별 찍기 - 10  (0) 2019.03.20
    [백준 1992] 쿼드트리  (0) 2019.03.20
Designed by Tistory.