[별 찍기-10]-2447번
My answer
def delete(cnt,tmp,n):
for i in range(n//3,cnt,n):
for t in range(i,i+n//3,1):
for j in range(n//3,cnt,n):
tmp[t]=tmp[t][:j]+" "*(n//3)+tmp[t][j+(n//3):]
if(cnt!=n):
return delete(cnt,tmp,n*3)
else:
return tmp
n=int(input())
tmp= ['*'*n for _ in range(n)]
tmp=delete(n,tmp,3)
for i in tmp:
print(i)
Another answer
n=int(input())
s='*'
while n>1:
t=[i*3 for i in s]
s=t+[i+' '*len(i)+i for i in s]+t
n//=3
print('\n'.join(s))
더보기
우선 처음에는 손도 못대다가 한번 생각나니까 코드 자체는 짧게 풀었던 것 같다. 우선 나는 별을 찍으려면 규칙을 생각해야되는데 없는 별에 대해서 규칙을 생각하려니 잘 안돼서 그냥 별을 다 찍어놓고 빈공간에 해당하는 부분의 규칙을 통해서 별을 지워갔다. 우선 반복문으로 코드를 짜고 재귀로 고쳤다. 아래 코드는 문제 그대로 그냥 별을 찍었는데, a+b+a 별찍기의 기본방법처럼 별있는부분찍고 빈공간찍고 별찍고를 반복해서 풀었다. 나중에 제대로 분석해봐야겠다.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python/백준] 기초문제들 3 (0) | 2021.11.26 |
---|---|
[Python/백준] #2875 - [대회 or 인턴] (0) | 2021.11.22 |
[Python/백준] 기초문제들 2 (0) | 2021.11.20 |
[Python/백준] #3085 -[사탕게임] (0) | 2021.11.19 |
[Python/백준] #1062 - [가르침] [try_again] (0) | 2021.11.16 |