Algorithm & Data Structure/Baekjoon

[Baekjoon/python] 별 찍기 - 11 #2448

ju_young 2023. 6. 21. 09:47
728x90

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

 

2448번: 별 찍기 - 11

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

www.acmicpc.net

문제

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

코드

  • 굳이 번거롭게 만든 재귀 문제
  • 8개 별을 가지는 삼각형을 기준으로 수행
import sys

input = sys.stdin.readline

n = int(input())
graph = [[' '] * 2 * n for _ in range(n)]


def recursive(row, col, N):
    if N == 3:
        graph[row][col] = '*'
        graph[row + 1][col - 1] = graph[row + 1][col + 1] = '*'
        for i in range(-2, 3):
            graph[row + 2][col + i] = '*'
    else:
        nextN = N // 2
        recursive(row, col, nextN) # 현재 위치의 삼각형과 양쪽 아래에 삼각형 생성
        recursive(row + nextN, col - nextN, nextN) # left-lower 삼각형과 양쪽 아래에 삼각형 생성
        recursive(row + nextN, col + nextN, nextN) # right-lower 삼각형과 양쪽 아래에 삼각형 생성


recursive(0, n - 1, n)
for i in graph:
    print("".join(i))
    
#                       *                        
#                      * *                       
#                     *****                      
#                    *     *                     
#                   * *   * *                    
#                  ***** *****                   
#                 *           *                  
#                * *         * *                 
#               *****       *****                
#              *     *     *     *               
#             * *   * *   * *   * *              
#            ***** ***** ***** *****             
#           *                       *            
#          * *                     * *           
#         *****                   *****          
#        *     *                 *     *         
#       * *   * *               * *   * *        
#      ***** *****             ***** *****       
#     *           *           *           *      
#    * *         * *         * *         * *     
#   *****       *****       *****       *****    
#  *     *     *     *     *     *     *     *   
# * *   * *   * *   * *   * *   * *   * *   * *  
#***** ***** ***** ***** ***** ***** ***** *****
728x90