어제 자기 전에 재귀함수 공부하다가 잡았던 문제이다.
알고리즘 자체는 어렵지 않은데 코딩으로 옮기기 생각보다 난감했던 문제이다.
N = int(input())
def hanoi(s, e, k):
another = 6 - e - k
if s > 1:
hanoi(s-1, e, another)
print(e, k)
if s > 1:
hanoi(s-1, another, k)
print(2**N-1)
hanoi(N,1,3)
밑의 2**N -1 은 풀어써도 돼지만, 규칙성 찾아서 빠르게 계산하기 위해 사용했다.
'코딩테스트 연습 복기용' 카테고리의 다른 글
230311 문자열_ 애너그램 그룹화, 가장 긴 팰린드롬 (1) | 2023.03.12 |
---|---|
팰린드롬 문제 (0) | 2023.03.09 |
230222 코딩 연습 (0) | 2023.02.22 |
230221 코딩 연습 (0) | 2023.02.21 |