감자튀김 공장🍟

[백준/2447] 별 찍기 - 10 (with 파이썬) 본문

Algorithm/BOJ

[백준/2447] 별 찍기 - 10 (with 파이썬)

Potato potage 2022. 11. 23. 16:36
반응형

✔ 문제


풀이

import sys
input = sys.stdin.readline

n = int(input())

def star(x):
    if x == 3:
        return ["***", "* *", "***"]

    arr = star(x // 3)
    stars = []

    for i in arr:
        stars.append(i * 3)

    for i in arr:
        stars.append(i + ' ' * (x // 3) + i)

    for i in arr:
        stars.append(i * 3)

    return stars

print('\n'.join(star(n)))

✔ 후기

전에 풀었던 피보나치 같은 재귀는 쉽게 풀었는데 이번 문제는 어려웠다. 구글링 해서 정답 코드를 보긴 했지만... ^_ㅠ

제일 작은 패턴은 n = 3일 때부터 시작인 걸 알고는 있었지만 조건을 어떻게 줘야 n = 9나 n = 27 인 경우에 가운데 텅 빈 공간을 출력할 수 있는지가 제일 관건이었던 것 같다.

반응형
Comments