코딩테스트

[백준] 2447 | 별 찍기 - 10 [파이썬/python]

사용할수없는닉네임이왜이렇게많지ㅠㅠ 2025. 3. 20. 18:06
728x90

문제

link: https://www.acmicpc.net/problem/2447

재귀함수를 이용하여 가운데가 공백인 문자열을 출력하는 문제이다.

 

접근

N*N 사이즈 리스트를 만든 후, 재귀함수를 통해 가운데 부분을 공백 문자열로 바꿔 주었다.

N=27일 때 출력되는 문자열

코드

import sys
input = sys.stdin.readline

N = int(input())
S = [['*' for _ in range(N)] for _ in range(N)]

def makeStar(a, b, N):
    if N != 1:
        tmp = N // 3
        for i in range(a + tmp, a + tmp*2):
            for j in range(b + tmp, b + tmp*2):
                S[i][j] = ' '
        for k in range(3):
            for l in range(3):
                if k != 1 or l != 1:
                    makeStar(a + k * tmp, b + l * tmp, tmp)
        
makeStar(0, 0, N)
for s in S:
    print(''.join(s))
728x90