๐Ÿ’ป

[๋ฐฑ์ค€] ์žฌ๊ท€ - 2447. ๋ณ„ ์ฐ๊ธฐ - 10 ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œํ’€์ด Baekjoon

[๋ฐฑ์ค€] ์žฌ๊ท€ - 2447. ๋ณ„ ์ฐ๊ธฐ - 10

๋˜ํšจ๋‹ˆ 2020. 2. 2. 15:31

๋ฌธ์ œ

์˜ˆ์ œ๋ฅผ ๋ณด๊ณ  ๊ทœ์น™์„ ์œ ์ถ”ํ•œ ๋’ค์— ๋ณ„์„ ์ฐ์–ด ๋ณด์„ธ์š”.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ ํ•ญ์ƒ 3์˜ ์ œ๊ณฑ๊ผด์ธ ์ˆ˜์ด๋‹ค. (3, 9, 27, ...) (N=3k, 1 ≤ k < 8)

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๋ฒˆ์งธ ์ค„๊นŒ์ง€ ๋ณ„์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ1

27

 

์˜ˆ์ œ ์ถœ๋ ฅ1

์ƒ๊ฐ

๊ทœ์น™์„ ์ฐพ๋Š” ๋ฌธ์ œ์˜€๋Š”๋ฐ, ์ฒ˜์Œ์— ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๋กœ๋Š” ์•ˆ์— ๋น„์–ด์ง€๋Š” ์นธ์ด ์ธ๋ฑ์Šค๊ฐ€ ๋‘˜๋‹ค ์ง์ˆ˜์ผ๋•Œ, ๊ทธ๋ฆฌ๊ณ  (n/3)< ์ธ๋ฑ์Šค <= n-(n/3) ์ผ๋•Œ ๋นˆ์นธ์ด๋ผ๊ณ  ๊ทœ์น™์„ ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทผ๋ฐ ์›ํ•˜๋Š” ๋ชจ์–‘์ด ์•ˆ๋‚˜์™€์„œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ณ ๋“ฑ ์ˆ˜ํ•™๋•Œ ์—ด์‹ฌํžˆ ํ’€์—ˆ๋˜ 3์ ์งœ๋ฆฌ ํ”„๋ ‰ํƒˆ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฐ์ด ๋‚˜๋ฉด์„œ ์ž ์‹œ ์ถ”์–ต์„ ํšŒ์ƒํ–ˆ๋‹ค.

 

์ž˜๊ฒŒ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ n=3์ผ๋•Œ ๋ถ€ํ„ฐ ์ƒ๊ฐํ–ˆ๋‹ค. 

 

n=3 ์ผ๋•Œ, Star(0,0,3) ํ˜ธ์ถœ

Star(0,0,1) -> [0][0] = ' * ' 

Star(0,1,1) -> [0][1] = ' * '

Star(0,2,1) -> [0][2] = ' * '

--------------------------------    ์ฒซ์งธ์ค„ ***์™„์„ฑ

Star(1,0,1) -> [1][0] = ' * '

Star(1,1,1) ->  

Star(1,2,1) -> [1][2] = ' * '

--------------------------------    ๋‘˜์งธ์ค„ * * ์™„์„ฑ

Star(2,0,1) -> [2][0] = ' * '

Star(2,1,1) -> [2][1] = ' * '

Star(2,2,1) -> [2][2] = ' * '

--------------------------------    ์…‹์งธ์ค„ ***์™„์„ฑ

 

๊ทœ์น™์„ ์ฐพ์œผ๋ฉด ์–ด๋ ต์ง€๋Š” ์•Š์€ ๋ฌธ์ œ์ธ๋ฐ ๊ทธ ๊ทœ์น™์„ ๊ตฌํ˜„ํ• ๋•Œ ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ ๋ฌธ์ œ์˜€๋‹ค.   

 

์ž‘์„ฑํ•œ ์ฝ”๋“œ

#include <iostream>
using namespace std;
int n;
char arr[6560][6560];

void Star(int x, int y, int number){
    if(number == 1){
        arr[x][y] = '*';
        return;
    }
    int div = number/3;
    for(int i=0; i<3; i++){
        for(int j=0; j<3; j++){
            if(i==1 && j==1){
                continue;
            }
            Star(x+(div*i),y+(div*j), div);
        }
    }
}
int main(int argc, const char * argv[]) {
    // insert code here...
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin >> n;
    
    for (int i = 0; i < 6560; i++) {
        for (int j = 0; j < 6560; j++) {
            arr[i][j]=' ';
        }
    }
    
    Star(0,0,n);
    
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            printf("%c",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
๋ฐ˜์‘ํ˜•
Comments