애초에 뭘 만들라는건지
문제 자체가 이해가 안가는데
보통 재귀함수 이해시키는 과정에서 하노이 탑 나오고 그런경우 원판 옮기는 시퀀스를 구하라고함 - dc Cpp
n개의 원판을 옮길 수 있는 시퀀스를 알고있다면 n+1개의 원판을 옮기는 시퀀스에 그대로 응용이 가능하기에 재귀적으로 구할 수 있게됨 - dc Cpp
원판이 옮겨지는 걸 어떻게 구현하라는거임? 그냥 하노이 타워 설명만 해주고 프로그램으로 만들라고 밖에 안하는데
시퀀스를 설명하면 되겠지. 1 2 3번 기둥이 있을 때 원판이 한개라면 1☞3 - dc Cpp
두개라면 1☞2 1☞3 2☞3의 과정을 거치게될거임 - dc Cpp
여기서 원판이 2개일 때의 시퀀스를 func(2, src, mid, dst) 꼴의 함수로 나타내보자 - dc Cpp
func(2, 1, 2, 3). 옮길 원판의 개수와 각 기둥의 번호임. src는 출발기둥 mid는 거쳐가는 버퍼용 기둥 dst는 옮기려는 목적지 - dc Cpp
반복하다보면 깨닫는건, n개의 원판을 src에서 dst로 옮기기 위해선 일단 n-1개의 원판을 src에서 mid로 옮긴 후, n번째 원판을 src에서 dst로 옮기고, n-1개의 원판을 mid에서 dst로 옮겨야한다는 점이다 - dc Cpp
솔직히 대면한 상태에서 설명하면 쉽게 할 수 있는데 글로는 한계가 느껴진다 - dc Cpp
증말 땡큐함니다
보통 재귀함수 이해시키는 과정에서 하노이 탑 나오고 그런경우 원판 옮기는 시퀀스를 구하라고함 - dc Cpp
n개의 원판을 옮길 수 있는 시퀀스를 알고있다면 n+1개의 원판을 옮기는 시퀀스에 그대로 응용이 가능하기에 재귀적으로 구할 수 있게됨 - dc Cpp
원판이 옮겨지는 걸 어떻게 구현하라는거임? 그냥 하노이 타워 설명만 해주고 프로그램으로 만들라고 밖에 안하는데
시퀀스를 설명하면 되겠지. 1 2 3번 기둥이 있을 때 원판이 한개라면 1☞3 - dc Cpp
두개라면 1☞2 1☞3 2☞3의 과정을 거치게될거임 - dc Cpp
여기서 원판이 2개일 때의 시퀀스를 func(2, src, mid, dst) 꼴의 함수로 나타내보자 - dc Cpp
func(2, 1, 2, 3). 옮길 원판의 개수와 각 기둥의 번호임. src는 출발기둥 mid는 거쳐가는 버퍼용 기둥 dst는 옮기려는 목적지 - dc Cpp
반복하다보면 깨닫는건, n개의 원판을 src에서 dst로 옮기기 위해선 일단 n-1개의 원판을 src에서 mid로 옮긴 후, n번째 원판을 src에서 dst로 옮기고, n-1개의 원판을 mid에서 dst로 옮겨야한다는 점이다 - dc Cpp
솔직히 대면한 상태에서 설명하면 쉽게 할 수 있는데 글로는 한계가 느껴진다 - dc Cpp
증말 땡큐함니다