티스토리 뷰

Algorithm/BOJ

2448 별찍기 - 11

henry1214 2018. 2. 11. 19:03

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



go(x,y,h)을 삼각형의 맨 위 꼭지점의 좌표, 높이로 두고 재귀 호출을 이용한 분할 정복을 한다.



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
#include <cstdio>
 
char s[3100][6200];
 
void go(int x,int y,int h)
{
    if(h==3)
    {
        s[x][y]=s[x+1][y-1]=s[x+1][y+1]='*';
        for(int i=y-2;i<=y+2;i++) s[x+2][i]='*';
        return;
    }
 
    go(x,y,h/2);
    go(x+h/2,y-h/2,h/2);
    go(x+h/2,y+h/2,h/2);
}
 
int main()
{
    int n;
    scanf("%d",&n);
    go(1,n,n);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=2*n-1;j++)
            printf("%c",s[i][j]=='*'?s[i][j]:' ');
        printf("\n");
    }
    return 0;
}
cs


'Algorithm > BOJ' 카테고리의 다른 글

1913 달팽이  (0) 2018.02.11
1021 회전하는 큐  (0) 2018.02.11
1914 하노이 탑  (0) 2018.02.09
9020 골드바흐의 추측  (0) 2018.02.09
11559 Puyo Puyo  (0) 2018.02.09
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday