그렇다면 재귀에서 가장 중요하게 생각해야하는 건 무엇일까?
어디가 끝인가? => 여기서는 n = 1이 되는 경우이다 이때 반환 되는 것이 최소 단위가 된다는 것 또한 중요하다
어떻게 반복되는가?
여기서는 밑의 코드에서와 같이 for문을 참고하면 어떠한 반복이 이루어지는지 알수 있을 것이다. 대충 퉁쳐서 말하자면 이 문제는 "*3" 이라고 할수있겠다.(정확한 반복은 for문과 이미지 참고)
def star(n):
if n == 1:
return ['*']
stars = star(n//3)
li = []
for s in stars:
li.append(s*3)
for s in stars:
li.append(s+' '*(n//3)+s)
for s in stars:
li.append(s*3)
return li
n = int(input())
print('\n'.join(star(n)))