[백준/C++] 2448번 별 찍기 - 11

2021. 4. 28. 21:26알고리즘/재귀

728x90
반응형

문제: www.acmicpc.net/problem/2448

 

 

문제풀이

 

재귀를 문제

 

각 삼각형의 위 쪽 꼭짓점을 기준으로 재귀를 진행했다. n의 키기가 3이 되면 별을 찍는다.

 

 

코드

#include <iostream>

using namespace std;

char board[3080][6160];

void func(int x, int y, int n){
    if(n==3){
        board[x][y] = '*';
        board[x+1][y-1] = '*';
        board[x+1][y+1] = '*';
        board[x+2][y-2] = '*';
        board[x+2][y-1] = '*';
        board[x+2][y] = '*';
        board[x+2][y+1] = '*';
        board[x+2][y+2] = '*';
    }
    else{
        func(x,y,n/2);
        func(x+n/2,y-n/2,n/2);
        func(x+n/2,y+n/2,n/2);
    }
}

int main(){
    ios::sync_with_stdio(false); cin.tie(nullptr);

    int n;
    cin>>n;

    for(int i=0; i<n; i++)
        fill(board[i], board[i]+n*2, ' ');

    func(0,n-1,n);

    for(int i=0; i<n; i++){
        for(int j=0; j<2*n-1; j++){
            cout<<board[i][j];
        }
        cout<<"\n";
    }

    return 0;
}

 

 

결과

 

 

728x90
반응형