728x90
2447번: 별 찍기 - 10
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이
www.acmicpc.net
아이디어 생각까지 다 했는데 구현을 못했다..
원래 재귀를 돌면서 별을 출력할 때, 리스트에 넣는게 아니라 그냥 문자열로 출력하게 만들었다.
이렇게 될 경우 print문 * 3 이런식으로 코드가 만들어져서 그냥 컴파일 오류가 발생한다. (print(a) * 3 이런 느낌)
별을 문자열이 아닌 리스트에 넣어서 마지막에 정답 출력할 때, join함수를 통해 별들을 출력해줄 수 있다.
def print_star(n):
if n == 3:
return ["***", "* *", "***"]
star = print_star(n//3)
star_result = []
for s in star:
star_result.append(s * 3)
for s in star:
star_result.append(s + " " * (n//3) + s)
for s in star:
star_result.append(s * 3)
return star_result
num = int(input())
print("\n".join(print_star(num)))
728x90
'알고리즘 > 백준' 카테고리의 다른 글
15649번: N과 M(1) (0) | 2023.03.07 |
---|---|
1002번: 터렛 (0) | 2023.03.03 |
9020번: 골드바흐의 추측 (0) | 2023.02.20 |
2839번: 설탕 배달 (0) | 2023.02.20 |
18406번: 럭키 스트레이트 (0) | 2023.02.08 |