Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JH 개발 블로그

백준 파이썬 2447 별찍기 - 10 본문

코딩테스트/백준

백준 파이썬 2447 별찍기 - 10

쿠우우훈 2021. 12. 31. 18:34

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

 

2447번: 별 찍기 - 10

재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이

www.acmicpc.net

 

n = int(input())

def star(l):
    if l == 3:
        return ['***','* *','***']

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

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

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

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

    return stars

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

 

n = 3일때

***
* *
***

n = 9일때

*********
* ** ** *
*********
***   ***
* *   * *
***   ***
*********
* ** ** *
*********

n = 27일때

***************************
* ** ** ** ** ** ** ** ** *
***************************
***   ******   ******   ***
* *   * ** *   * ** *   * *
***   ******   ******   ***
***************************
* ** ** ** ** ** ** ** ** *
***************************
*********         *********
* ** ** *         * ** ** *
*********         *********
***   ***         ***   ***
* *   * *         * *   * *
***   ***         ***   ***
*********         *********
* ** ** *         * ** ** *
*********         *********
***************************
* ** ** ** ** ** ** ** ** *
***************************
***   ******   ******   ***
* *   * ** *   * ** *   * *
***   ******   ******   ***
***************************
* ** ** ** ** ** ** ** ** *
***************************

N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태입니다.

따라서 N의 패턴을 알려면 N//3 의 패턴을 알아야 합니다. 결국 재귀를 돌면서 N은 최소단위인 3이 되고, N=3일때의 패턴을 만들고 리턴해줍니다.

3의 패턴을 가지고 9의 패턴을 알게되고, 9의 패턴을 가지고 27의 패턴을 알게되고.. 반복하면서 결국 N의 패턴을 알게 됩니다. 패턴을 만들때 가운데부분은 비워주는걸 유의해야 합니다.

'코딩테스트 > 백준' 카테고리의 다른 글

백준 파이썬 11664 선분과 점  (0) 2022.01.11
백준 2448 파이썬 별찍기 - 11  (0) 2021.12.31
백준 1891 파이썬 사분면  (0) 2021.12.31
백준 1201 파이썬 NMK  (0) 2021.12.31
백준 파이썬 1074 Z  (0) 2021.12.31
Comments