-
[백준 2448] 별 찍기 - 11알고리즘/백준 2019. 3. 20. 20:27
꽤 오랜시간 동안, 해맨 문제.
출처 : https://www.acmicpc.net/problem/2448
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10)
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
예제 입력 1
24
예제 출력 1
* * * ***** * * * * * * ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * * * * * * * * * * * * * * * * * * * ***** ***** ***** ***** ***** ***** ***** *****
소스코드
123456789101112131415161718192021222324252627282930313233343536373839404142#include<iostream>using namespace std;char star[3072][6144];void draw(int x, int y, int size){if(size != 3){draw(x, y, size/2); // 현재 위치 별 그림draw(x-size/2, y+size/2, size/2); // 왼쪽 아래 별 그림draw(x-size/2+size, y+size/2,size/2); // 오른쪽 아래 별 그림}else {star[y][x] = '*';star[y+1][x-1] = '*';star[y+1][x] = ' ';star[y+1][x+1] = '*';star[y+2][x-2] = '*';star[y+2][x-1] = '*';star[y+2][x] = '*';star[y+2][x+1] = '*';star[y+2][x+2] = '*';}return;}int main(){int n;cin >> n;for(int i = 0; i < n; i++){for(int j = 0; j < 2*n-1; j++){star[i][j] = ' '; // 공백 초기화}}draw(n-1,0,n);for(int i = 0; i < n; i++){for(int j = 0; j < 2*n-1; j++){cout << star[i][j];}cout << '\n';}return 0;}cs ※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다.
반응형'알고리즘 > 백준' 카테고리의 다른 글
[백준 1517] 버블 소트 (0) 2019.03.21 [백준 1074] Z (0) 2019.03.21 [백준 2447] 별 찍기 - 10 (0) 2019.03.20 [백준 1992] 쿼드트리 (0) 2019.03.20