-
[🐉 백준 10단계] 재귀Algorithm/케로베로스 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
알고리즘
작은거 => 시작 > 중간
큰거 => 시작 > 목적지
작은거 => 중간 > 목적지 ..
이 패턴의 반복이다.
반응형'Algorithm > 케로베로스' 카테고리의 다른 글
[🐉 백준 11단계] 브루트 포스 (0) 2020.12.21 [🦩 프로그래머스] 오픈채팅방 / 나누어 떨어지는 숫자배열 / 같은 숫자는 싫어 / 체육복 (0) 2020.12.14 [🐉 백준 9단계] 수학 2 (0) 2020.12.13 [🐉 백준 8단계] 수학 1 (2) 2020.12.13 [🐉 백준 7단계] 문자열 (0) 2020.12.12