728x90
반응형
Silver III
# 2447 별 찍기 - 10
링크 : https://www.acmicpc.net/problem/2447
풀이
N = int(input())
# 빈 공간 생성
arr = [[' '] * N for i in range(N)]
# 재귀문 작성
def fill_stars(size, x, y): # size: 확인하려는 공간(n*n)의 크기, x: x좌표, y: 좌표)
# 재귀문의 탈출 조건, 더 이상 작아질 수 없을 때 '*' 입력
if size == 1:
arr[y][x] = '*'
else:
new_size = size//3 # 재귀문이 반복되는 크기
for dx in range(3):
for dy in range(3):
if dx != 1 or dy != 1:
fill_stars(new_size, x+dx*new_size, y+dy*new_size)
# new_size에서의 x좌표, y좌표 설정
fill_stars(N, 0, 0)
for k in arr:
print(''.join(k))
후기
- 구글링 통해서 이해했다. (거의 암기수준으로.. ) 확인해야 하는 행렬의 size, x좌표, y좌표를 가지고 함수를 만들어서 재귀 반복으로 별을 기입했다.
- 모든 공간에 별이 기입된 상태에서 빈 공간을 기입하는, 하향식 방법에 대해서 추가적인 공부가 필요하다
- 구글링 없이 스스로 풀 수 있는지에 대해서도 점검이 필요하다.
'Algorithm Study > Python' 카테고리의 다른 글
[Algorithm Study] 파이썬 부분집합 구하기 예시 (0) | 2022.08.11 |
---|---|
[백준 파이썬] #2804 크로스워드 만들기 (0) | 2022.07.23 |
[백준 파이썬] # 1966 프린터 큐 (0) | 2022.03.09 |
[백준 파이썬] # 11279 최대 힙 (0) | 2022.03.06 |
[백준 파이썬] # 3273 두 수의 합 (0) | 2022.03.06 |