티스토리 뷰
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 |