본문 바로가기
알고리즘/백준

[백준 2447] 별 찍기 - 10

by RoJae 2019. 3. 20.

분할정복
문제이지만, 생각보다 까다로웠던 문제...

이해가 부족한만큼 더 공부해야겠다.


출처 : https://www.acmicpc.net/problem/2447


문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N이 주어진다. N은 항상 3의 제곱꼴인 수이다. (1, 3, 9, 27, ...) (N=3k, 0 ≤ k < 8)

출력

첫째 줄부터 N번째 줄까지 별을 출력한다.

예제 입력 1

27

예제 출력 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
#include<iostream>
 
using namespace std;
 
void draw(int x, int y, int size){
    if((x/size)%3==1 && (y/size)%3==1)
        cout << ' ';
    else{
        if(size/3 == 0)
            cout << '*';
        else
            draw(x,y,size/3);
    }
}
int main(){
    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            draw(i,j,n);
        }
        cout << '\n';
    }
    return 0;    
cs



※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다.

반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 1074] Z  (0) 2019.03.21
[백준 2448] 별 찍기 - 11  (0) 2019.03.20
[백준 1992] 쿼드트리  (0) 2019.03.20
[백준 2263] 트리의 순회  (0) 2019.03.20

댓글