반응형
https://www.acmicpc.net/problem/10993
오랜만에 별을 찍어봤습니다.
바깥 삼각형부터 시작 기준 점과 삼각형의 크기를 구하고 대각선 방향으로 별을 찍어냈습니다.
#include <cstdio>
#include <cstring>
char s[1023][2046];
int main() {
int n, r = 1, c = 1, x = 0, y = 0;
memset(s, ' ', sizeof(s));
scanf("%d", &n);
for (int i = 1; i < n; i++) r = r * 2 + 1, c = c * 2 + 3;
x = n % 2 ? r - 1 : x;
for (int i = n, rr = r, cc = c; i ; rr /= 2, cc = cc / 2 - 1, x += i % 2 ? -rr : rr, y += rr + 1, i--) {
for (int j = 0; j < cc; j++) s[x][y + j] = '*';
for (int j = 1; j < rr; j++)
s[x + (i % 2 ? -j : j)][y + j] = s[x + (i % 2 ? -j : j)][y + cc - 1 - j] = '*';
}
for (int i = 0; i < r; i++) {
s[i][n % 2 ? c / 2 + 1 + i : c - i] = '\0';
printf("%s\n", s[i]);
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 13398 : 연속합 2 (0) | 2021.11.12 |
---|---|
백준 14002 : 가장 긴 증가하는 부분 수열 4 (0) | 2021.11.12 |
백준 11722 : 가장 긴 감소하는 부분 수열 (0) | 2021.11.12 |
백준 11055 : 가장 큰 증가 부분 수열 (0) | 2021.11.12 |
백준 1699 : 제곱수의 합 (0) | 2021.11.12 |