별찍기 10과 비슷하게 모두다 *로 초기화 한 뒤 범위를 늘려가며
구멍을 송송 뚫으면 된다.
단 1개만 구멍을 뚫을 경우 식이 달라야 한다는 점을 조심하면 된다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <stdio.h> #include <string.h> char arr[3100][6200]; int main(void) { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { for (int j = 0; j < 2 * i + 1; j++) { arr[i][j] = '*'; } } for (int i = 0; i < n; i++) { for (int j = 0; j < 2 * i + 1; j++) { int a = i % 3; int b = j % 3; if (a == 1 && b == 1) { arr[i][j] = ' '; } int k = 6; while (k <= n) { a = i % k; b = j % k; if (a >= k/2 && a < k && b >= 1 + 2 * (a - k/2) && b < k) { arr[i][j] = ' '; } k *= 2; } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n - i - 1; j++) { printf(" "); } for (int j = 0; j < i * 2 + 1; j++) { printf("%c", arr[i][j]); } for (int j = 0; j < n - i - 1; j++) { printf(" "); } printf("\n"); } } | cs |
'알고리즘 > PS' 카테고리의 다른 글
[백준 1202] 보석도둑 (0) | 2018.05.18 |
---|---|
[백준 13302] 리조트 (0) | 2018.05.18 |
[백준 7576] 토마토 (0) | 2018.05.18 |
[백준 2447] 별찍기 - 10 (0) | 2018.05.18 |
2의 n승 출력하기 (large) (0) | 2018.05.18 |