티스토리 뷰

문제 링크

https://www.acmicpc.net/problem/10994

 

10994번: 별 찍기 - 19

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

www.acmicpc.net

 

구현 코드

 

#include <iostream>
using namespace std;
char Map[401][401];
void draw_stars(int depth, int idx){
if(depth == 1){
Map[idx][idx] = '*';
return;
}
int len = 4 * (depth - 1) + 1;
for(int i=idx;i<len+idx;i++){
Map[idx][i] = '*';
Map[idx + len - 1][i] = '*';
}
for(int i=idx;i<len+idx;i++){
Map[i][idx] = '*';
Map[i][idx + len - 1] = '*';
}
draw_stars(depth-1, idx+2);
return;
}
int main(){
int n;
cin >> n;
int len = 4 * (n - 1) + 1;
for(int i=0;i<len;i++)
for(int j=0;j<len;j++)
Map[i][j] = ' ';
draw_stars(n,0);
for(int i=0;i<len;i++){
for(int j=0;j<len;j++){
cout << Map[i][j];
}
cout << endl;
}
return 0;
}
view raw 10994.cpp hosted with ❤ by GitHub
def draw_stars(depth, idx):
if depth == 1:
Map[idx][idx] = '*'
return
l = 4 * (depth - 1) + 1
for i in range(idx, l+idx):
Map[idx][i] = '*'
Map[idx+l-1][i] = '*'
for i in range(idx, l+idx):
Map[i][idx] = '*'
Map[i][idx+l-1] = '*'
draw_stars(depth-1, idx+2)
return
n = int(input())
length = 4 * (n - 1) + 1
Map = [[' '] * length for _ in range(length)]
draw_stars(n,0)
for i in range(length):
for j in range(length):
print(Map[i][j], end="")
print()
view raw 10994.py hosted with ❤ by GitHub