728x90
문제 설명
재귀함수의 인자로는 총 세 개를 설정했다. a에서 b로 n개 옮긴다는 뜻이다. n이 1이면 한 개만 옮기면 된다는 뜻이므로 a와 b를 출력했고 n이 1이 아닐 경우 a에서 b가 아닌 다른 쪽, 즉 6-a-b로 n-1개 옮긴 후 a에서 b로 옮긴 후 다시 6-a-b에서 b로 n-1개 옮기도록 했다.
전체 코드
def func(a,b,n):
if n == 1:
print("%d %d" % (a,b))
return 0
else:
func(a,6-a-b,n-1)
print("%d %d" % (a,b))
func(6-a-b,b,n-1)
return 0
def main():
num = int(input())
print(2 ** num - 1)
func(1,3,num)
if __name__ == "__main__":
main()
728x90
반응형
'코딩테스트 > 파이썬' 카테고리의 다른 글
백준 1780번 종이의 개수 (0) | 2021.02.01 |
---|---|
백준 2630번 색종이 만들기 (0) | 2021.01.31 |
백준 17478번 재귀함수가 뭔가요? (0) | 2021.01.29 |
백준 1629번 곱셈 (0) | 2021.01.28 |
프로그래머스 level1 크레인 인형뽑기 게임 (0) | 2021.01.26 |