티스토리 뷰
접근법
사실 어떤 규칙이 있는지 찾는데도 시간이 오래 걸렸다. 우선 규칙은 예시로 나와있는 출력을 아래와 같이 줄을
그어보면 찾을 수 있다.
크게 3 * 3 형태의 사각형만 주목해서 보다 보면 정가운데만 공백으로 이루어져 있는 것을 볼 수 있다. 즉, 재귀로 풀 수
있는 냄새가 풀풀난다. 그래서 필자는 문제를 아래와 같이 접근해 보았다.
n은 3의 제곱꼴인 수로만 등장하므로 이 규칙을 따라갈 필요가 있다.
규칙에 따라서 주어진 길이에서 3으로 나눈 몫이 1일 경우에는 아예 중앙이 뚫리는 형태,
그 외 몫이 다른 값일 경우에는 최초로 3 * 3의 [ '***', '* *', '***' ] 형태의 사각형이 그대로 채워지는 형태로
코드를 짜보았다.
풀이
def stars(n):
matrix=[]
for i in range(3 * len(n)):
if i // len(n) == 1:
matrix.append(n[i % len(n)] + " " * len(n) + n[i % len(n)])
else:
matrix.append(n[i % len(n)] * 3)
return(list(matrix))
star = ["***","* *","***"]
n = int(input())
k = 0
while n != 3:
n = int(n / 3)
k += 1
for i in range(k):
star = stars(star)
for i in star:
print(i)
'프로그래밍 > BOJ' 카테고리의 다른 글
백준 #2798: 블랙잭 [Python] (0) | 2020.02.12 |
---|---|
백준 #11729: 하노이 탑 이동 순서 [Python] (1) | 2020.02.12 |
백준 #10870: 피보나치 수 5 (0) | 2020.02.02 |
백준 #10872: 팩토리얼 (0) | 2020.02.02 |
백준 #1002: 터렛 (0) | 2020.01.30 |
댓글