반응형
https://www.acmicpc.net/problem/2447
이 문제는 이해하는게 어려웠던 문제였다. 이해하는데 시간이 좀 걸렸다. 이 문제를 푸는데는 여러 가지 방법이 있는데 나는 상중하로 구간을 나눠서 별을 찍는 방식을 선택했다. 구간을 상중하로 나누어 재귀함수를 통해 구해진 별을 붙여 나간다. 코드가 직관적이어서 이해하기 좀 더 쉬웠던 것 같다. print(L) 을 해보면 어떻게 재귀함수가 돌아가는지 이해하는데 도움이 될 것이다.
num = int(input())
def star(n):
if n == 1: return ['*']
stars = star(n//3)
L = [] # 별을 출력할 리스트
for s in stars: L.append(s*3) # 상 구간
for s in stars: L.append(s+' '*(n//3)+s) # 중 구간
for s in stars: L.append(s*3) # 하 구간
return L
print('\n'.join(star(num)))
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준/Python] 덩치 (0) | 2021.08.24 |
---|---|
[백준/Python] 하노이 탑 이동 순서 (0) | 2021.08.14 |
[백준/Python] 특정 거리의 도시 찾기 (0) | 2021.07.24 |
[백준/Python] 플로이드 (0) | 2021.07.04 |
[백준/Python] 럭키 스트레이트 (0) | 2021.05.14 |