Algorithm/케로베로스
[🐉 백준 10단계] 재귀
대인보우
2020. 12. 21. 13:14
반응형
백준 10단계
재귀
10872
def fact(i):
# 0! 또한 1이다.
if i <= 1:
return 1
return i * fact(i-1)
print(fact(int(input())))
10870
def fib(i):
if i <= 1:
return i
return fib(i-1) + fib(i-2)
print(fib(int(input())))
2447
def get_stars(n):
matrix = []
for i in range(3 * len(n)):
if i // len(n) == 1: # 3의 배수 +1일때 공백과 별이 번갈아 나타남
matrix.append(n[i % len(n)] + " " * len(n) + n[i % len(n)])
else:
matrix.append(n[i % len(n)] * 3)
return matrix
star = ["***", "* *", "***"]
n = int(input())
e = 0
while n != 3:
n = int(n / 3)
e += 1 # 3의 e승을 표현
for i in range(e):
star = get_stars(star)
for i in star:
print(i)
11729
def hanoi(disk, start, mid, end):
if disk == 1:
print('이것:', disk, start, end)
else:
hanoi(disk - 1, start, end, mid)
print('저것:', disk, start, end)
hanoi(disk - 1, mid, start, end)
total_disk = int(input())
total_mvmt = 0
for disk in range(total_disk):
total_mvmt = total_mvmt * 2
total_mvmt += 1
print(total_mvmt)
hanoi(total_disk, 1, 2, 3)
# 3
# 7
# 이것: 1 1 3
# 저것: 2 1 2
# 이것: 1 3 2
# 저것: 3 1 3
# 이것: 1 2 1
# 저것: 2 2 3
# 이것: 1 1 3
알고리즘
작은거 => 시작 > 중간
큰거 => 시작 > 목적지
작은거 => 중간 > 목적지 ..
이 패턴의 반복이다.
반응형