[algorithm] 백준 2447 - 별 찍기 10
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준 2447번 문제 - 별 찍기 10 의 풀이를 살펴보도록 하겠습니다.
풀이에 사용한 언어는 Python3 입니다.
문제 해석과 풀이 다 함께 살펴보시죠.
백준 BAEKJOON 2447
문제 해석
이번 문제에서는 재귀함수를 사용해서 별 찍기를 진행해야합니다.
공백이 나타날 곳만 조금 신경써주면 쉽게 찍어낼 수 있습니다.
***
* *
***
n 이 3일 때는 위 모양이 출력되고
9일 때는 위 모양을 한 개의 별로 보고 똑같은 패턴으로 출력하면 정답이 출력됩니다.
방금 말한 한 개의 별로 본다는 말이 문제를 풀 때 큰 실마리가 될 힌트입니다.
풀이
# 2447 별 찍기 10
n = int(input())
def star(x):
if x == 3:
return ['***','* *','***']
arr = star(x//3)
stars = []
for i in arr:
stars.append(i*3)
for i in arr:
stars.append(i+' '*(x//3)+i)
for i in arr:
stars.append(i*3)
return stars
print('\n'.join(star(n)))
풀이 해석 및 팁
star 함수를 살펴보면 stars 리스트에 별 모양을 계속 append 시켜주는 과정이 존재합니다.
여기서 i*3 이 문제 해석에서 힌트로 말씀드린 부분입니다.
재귀함수를 사용해서 패턴은 유지하면서 크기를 키워주는 방법으로 문제를 해결했습니다.
여기까지 백준 2447번 별 찍기 10 문제 풀이였습니다.
이번 문제의 정답률은 54% 정도입니다.
재귀함수를 이용해서 패턴을 유지시키는 동시에 크기를 키우는 별 찍기 문제였습니다.
궁금하신 점은 댓글로 남겨주시기 바랍니다.
감사합니다.
반응형
'programming > algorithm' 카테고리의 다른 글
[algorithm] 백준 18258 - 큐 2 (0) | 2023.05.05 |
---|---|
[algorithm] 백준 10828 - 스택 (0) | 2023.05.04 |
[algorithm] 백준 2170 - 선 긋기 (0) | 2023.05.02 |
[algorithm] 백준 10870 - 피보나치 수 5 (0) | 2023.05.01 |
[algorithm] 백준 27433 - 팩토리얼 2 (0) | 2023.04.30 |