TIL
Algorithm TIL 241109
wnwlals13
2024. 11. 9. 23:58
백준 2447 별찍기 - 10
문제 접근
***
* *
***
모양의 별찍기를 하는 데 다만 반복문의 조건이 까다롭다고 생각했다. 하지만 조건이 까다로워서 어려웠다.
우선 별을 찍는데 i와 j가 1인 위치에는 공백으로 출력되어야 했다. 이 조건을 생각하기 어려웠다.
코드
import sys
input = sys.stdin.readline
n = int(input())
arr = [[' ' for _ in range(n)] for _ in range(n)]
def func(x,y,n) :
if n == 1 :
arr[x][y] = "*"
return
new_n = n // 3
for i in range(3) :
for j in range(3) :
if i % 3 != 1 or j % 3 != 1 :
func(x+i*new_n, y+j*new_n, new_n)
func(0,0,n)
# 결과 출력
for row in arr:
print(''.join(row))
느낀점
별찍기라도 쉬운 게 아니다.. 조건 분기를 생각하고 반복문을 생각했을 때 재귀로 푸는 방법이 더 쉽다.