1. 문제 링크
https://www.acmicpc.net/problem/2447
2. 나는 어떻게 생각했는가?
- 문제는 이해했지만, 풀이가 잘 이해가 안간다.
- 수학적 사고력이 많이 부족하다는 것을 느끼게하는 문제
- 지금 당장 이해가 안가는 문제를 붙잡고 있으려니, 시간이 아깝다고 생각해서 패스한다.
3. 정답 코드
def draw_star(n) :
global Map
if n == 3 :
Map[0][:3] = Map[2][:3] = [1]*3
Map[1][:3] = [1, 0, 1]
return
a = n // 3
draw_star(n // 3)
for i in range(3) :
for j in range(3) :
if i == 1 and j == 1 :
continue
for k in range(a) :
Map[a*i+k][a*j:a*(j+1)] = Map[k][:a] # 핵심 아이디어
N = int(input())
Map = [[0 for i in range(N)] for i in range(N)]
draw_star(N)
for i in Map :
for j in i :
if j :
print('*', end = '')
else :
print(' ', end = '')
print()
# 출처 - https://study-all-night.tistory.com/5
'Algorithm > 알고리즘 문제풀이' 카테고리의 다른 글
백준 2750 파이썬 - 수 정렬하기(버블정렬) (0) | 2021.08.23 |
---|---|
백준 11729 파이썬 - 하노이 탑 이동 순서 (0) | 2021.08.17 |
백준 10870 파이썬 - 피보나치 5 (0) | 2021.08.17 |
백준 10872 파이썬 - 팩토리얼 (0) | 2021.08.17 |
백준 1002 파이썬 - 터렛 (0) | 2021.08.17 |
댓글