[BOJ]2448 별 찍기 - 11

강동현·2024년 1월 5일
0

코딩테스트

목록 보기
58/111
  • sol: 별찍는 문제
    재귀의 가장 기본이자 쉽지 않은 유형
    base condition : N = 3
    밑변의 길이 = 2 * N - 1임을 파악
    삼각형의 높이 = N임을 파악
    이를 토대로 재귀 함수 구성
#include <bits/stdc++.h>
using namespace std;
int N;
vector<vector<char>> board(6144, vector<char>(6144, ' '));
void recursion(int x, int y, int N){
    if(N == 3){
        board[x][y+2] = '*';
        board[x + 1][y+1] = '*';
        board[x + 1][y+3] = '*';
        for(int i = 0; i < 5; ++i){
            board[x+2][y+i] = '*';
        }
        return;
    }
    recursion(x, y + N / 2, N/2);
    recursion(x + N/2, y, N/2);
    recursion(x + N/2, y + N, N/2);
    return;
}
int main(){
    cin >> N;
    recursion(0, 0, 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;
}
profile
GAME DESIGN & CLIENT PROGRAMMING

0개의 댓글