티스토리 뷰

<문제 링크>

 

2447번: 별 찍기 - 10

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

www.acmicpc.net

 

<문제 풀이>

def draw(scale):
    if scale == 3:
        return ['***','* *','***']

    star_unit = draw(scale // 3)
    star_res = []

    for star in star_unit: star_res.append(star * 3)
    for star in star_unit: star_res.append(star + ' ' * (scale//3) + star)
    for star in star_unit: star_res.append(star * 3)

    return star_res

N = int(input())
print('\n'.join(draw(N)))

2447 입출력 예시

*key point: 같은 규칙(3번 출력, 1번 출력 + 공백 + 1번 출력, 3번 출력)이 반복되면서 그림이 그려지도록 재귀함수를 사용한다. 리스트 형태로 저장되므로 join 함수를 이용하여 줄바꿈과 함께 이어서 출력되도록 한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함