bong-u/til

백준 - 2448 : 별 찍기 - 11 (G4)

수정일 : 2024-11-15

 1import math
 2
 3N = int(input())
 4K = int(math.log2(N//3))
 5arr = [[' '] * (2*N-1) for _ in range(N)]
 6
 7
 8def solve(depth, bx, by):
 9    if depth == 0:
10        for i in range(3):
11            for j in range(i*2+1):
12                arr[by+i][bx+(2-i)+j] = '*'
13        arr[by+1][bx+2] = ' '
14    else:
15        px = 2**(depth)*3
16        py = 2**(depth-1)*3
17        solve(depth-1, bx+px//2, by)
18        solve(depth-1, bx, by+py)
19        solve(depth-1, bx+px, by+py)
20solve(K, 0, 0)
21for i in arr:
22    print (''.join(i))
  • 혼자 풀었다
  • 별이 찍혀져있는 모습을 보고 규칙을 찾아내서 구현하는 문제였다
  • N이 3*(2^N)으로만 주어진다는 것을 토대로 재귀를 이용하여 풀었다