BOJ 2448星図-11


https://www.acmicpc.net/problem/2448
1秒、256 MBメモリ
input :
  • N(N = 3×2^k (3, 6, 12, 24, 48, ...)) (0≦k≦10、kは整数)
  • output :
    出力恒星
  • N行
    星を削除する方法で開始...
    x,yの位置は指定されていませんが、失敗しました.
  • x,yの位置から探し始め,nが3になるまで同じ3画面に分割し続ける.
    import sys
    
    n = int(sys.stdin.readline())
    graph = [[" "] * (2 * n - 1) for i in range(n)]
    
    def star(x, y, n):
        if n == 3:
            graph[x][y] = '*'
            graph[x + 1][y - 1] = '*'
            graph[x + 1][y + 1] = '*'
            graph[x + 2][y - 2] = '*'
            graph[x + 2][y - 1] = '*'
            graph[x + 2][y] = '*'
            graph[x + 2][y + 1] = '*'
            graph[x + 2][y + 2] = '*'
        else:
            star(x + n // 2, y - n // 2, n // 2)
            star(x + n // 2, y + n // 2, n // 2)
            star(x, y, n // 2)
    
    star(0, n - 1, n)
    for i in range(len(graph)):
            print("".join(graph[i]))