본문 바로가기

스터디 1일 1커밋

240617 [BOJ/백준] 10994. 별찍기-19

https://www.acmicpc.net/problem/10994


문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


출력

첫째 줄부터 차례대로 별을 출력한다.


입력 코드

def star(num):
    if num == n:
        print(('*'+' ')*(num-1)+'*'+(' '+'*')*(num-1))
        return

    print(('*'+' ')*(num-1)+'**'*(n-num)+'*'+'**'*(n-num)+(' '+'*')*(num-1))
    print(('*'+' ')*(num)+'  '*(n-num-1)+' '+'  '*(n-num-1)+(' '+'*')*(num))
    star(num+1)
    print(('*'+' ')*(num)+'  '*(n-num-1)+' '+'  '*(n-num-1)+(' '+'*')*(num))
    print(('*'+' ')*(num-1)+'**'*(n-num)+'*'+'**'*(n-num)+(' '+'*')*(num-1))


n = int(input())
star(1)

출력


별찍기를 재귀로 풀어보겠다고 며칠 동안 재귀로 풀 수 있는 방법만 생각해 본 것 같다. 근데 그냥 반복문과 똑같은 것 같네...? 심지어 찾아봤는데 다들 이차원 배열로 푼 것 같은데 어떻게 푸는거지? 방학 끝나기 전까지 다시 한 번 본다!