본문 바로가기
Develop/알고리즘

[백준/Python] Gold IV #2448 별 찍기 - 11

by favorcat 2023. 6. 18.
반응형
 

2448번: 별 찍기 - 11

첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)

www.acmicpc.net

문제

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

입력

첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)

출력

첫째 줄부터 N번째 줄까지 별을 출력한다.

풀이

import sys
input = sys.stdin.readline
n = int(input())
star = [[' ' for _ in range(n*2)] for _ in range(n)]

def create(c, r, size):
  if size == 3:
    star[c][r] = "*"
    star[c+1][r-1] = star[c+1][r+1] = '*'
    for i in range(-2, 3):
      star[c+2][r-i] = '*'
  else:
    size2 = size//2
    create(c, r, size2)
    create(c+size2, r-size2, size2)
    create(c+size2, r+size2, size2)
create(0, n-1, n)

for s in star:
  print("".join(s))
반응형

Comment