import sys
input = sys.stdin.readline
def star(n):
if n==3:
init = ['***', '* *', '***']
return init
else:
prev = star(n//3)
lst = []
for i in prev:
lst.append(i*3)
for i in prev:
lst.append(i + ' '*(n//3) + i)
for i in prev:
lst.append(i*3)
return lst
N = int(input())
print('\n'.join(star(N)))
res = star(N)
print(*res, sep='\n')
그런데 나는 코드를 작성하며 n에 3, 9, 27..을 넣지 않고 1, 2, 3..을 넣고 싶어서 k = int(math.log(N, 3))을 작성하고 star(k)를 불러서 출력하도록 했는데 틀렸습니다가 나오더라... 아무리 봐도 위 코드랑 같아 보이고.. gpt는 엉뚱한 소리만 하고.... claude은 똑같은 로직이라고 하구... 분명 N은 3의 거듭제곱만 들어온댔는데 다른 입력이 있는 걸까...? 혹시라도 차이점을 발견하시는 분은 꼬옥 알려주세요.. 답답해 죽겠어요..
import sys, math
input = sys.stdin.readline
def star(n):
if n==1:
init = ['***', '* *', '***']
return init
else:
prev = star(n-1)
lst = []
for i in prev:
lst.append(i*3)
for i in prev:
lst.append(i + ' '*(3**(n-1)) + i)
for i in prev:
lst.append(i*3)
return lst
N = int(input())
k = int(math.log(N, 3))
res = star(k)
print('\n'.join(res))
