728x90
https://www.acmicpc.net/problem/2448
1. 우선 graph의 원소들을 초기화 한다 !
2. 나는 n ==3 이면 가장 기본 모양의 삼각형이므로, n==3 이면 별 모양을 넣어주는 걸로 풀었다
n==3일때의 삼각형 모양이 반복되어 만들어지기 때문이다 !!
3. n==3 일때 별을 찍고, 이 모양이 반복되므로, x좌표와 y좌표값을 찾아서 반복해 주면 되는데,
그것이 star 함수를 재귀 호출 한 부분이다
왼쪽 아래 부분, 오른쪽 아래 부분, 그리고 현재 x,y 부분을 나눠서 별을 찍는다고 생각하면 간단하다..
star(x, y, NEXT) // 맨 위 그러니까 현재 x, y 좌표부터 계산하는 부분이다.
star(x+NEXT, y+NEXT, NEXT) // 오른쪽 아래 부분
star(x+NEXT, y-NEXT, NEXT) // 왼쪽 아래 부분
n = int(input())
graph = [[' ']*2*n for _ in range(n)]
def star(x, y, n):
if n == 3:
graph[x][y] = '*'
graph[x+1][y-1] = graph[x+1][y+1] = '*'
for i in range(-2, 3):
graph[x+2][y+i] = '*'
else:
NEXT = n//2
star(x, y, NEXT)
star(x+NEXT, y+NEXT, NEXT)
star(x+NEXT, y-NEXT, NEXT)
star(0, n-1, n)
for i in graph:
print("".join(i))
728x90
'Algorithm (PS)' 카테고리의 다른 글
정렬 알고리즘 (0) | 2022.02.07 |
---|---|
[프로그래머스] 해시 - 완주하지 못한 선수 , dictionary in Python 정리 (0) | 2022.02.06 |
[백준] 1427 소트인사이드 Python (0) | 2022.02.06 |
[백준] 2225 합분해 in Python <점화식을 테이블을 그리면 쉽게 구하는 DP문제> (0) | 2022.02.05 |
[백준] 2178 미로탐색 (BFS 풀이) (0) | 2022.02.05 |