hosahn   2년 전

안녕하세요, 요즘 재귀함수에 푹 빠져사는 초심자입니다. 슬슬 재귀에 익숙해지고, 간단한 재귀함수는 스택이나 for문을 이용해서 비재귀로 변환하는법도 대략은 알겠는데, 이게 재귀함수가 조금만 복잡해져도(예 : 하노이의 탑) 재귀로는 쉽게 구현하겠는데, 이걸 비재귀로 바꾸려니 정말 답답하고 안풀리네요... 

혹시라도 이런 복잡한 재귀함수를 쉽게 비재귀로 바꾸는 법이 있을까요? 그 전에, 복잡한 재귀함수를 비재귀함수로 바꾸는 작업이 중요하고 꼭 필요한, 즉 알고리즘 문제해결을 위해 제가 필연적으로 익숙해져야 할 작업이기는 한가요? 제가 너무 쓸데없는것에 노력을 쏟고 있는 거라면, 고수님들 조언 듣고 빠르게 다음 공부를 하려고 질문드립니다.. 많은 조언 부탁드려요.

bnb2011   2년 전

문제에 따라서는 재귀를 이용해서 푸는게 편한 경우가 있고 (Top-down), 아니면 반복문을 이용해 비재귀로 푸는 것이 편한 경우가 있습니다 (Bottom-up).

개인적인 의견이지만 재귀로 편하게 짤 수 있는 코드를 굳이 비재귀로 바꿔볼 필요는 없다고 생각합니다. 저도 그냥 상황에 맞게 먼저 생각이 떠오르는 쪽으로 코딩하는 편이네요.

hosahn   2년 전

감사합니다 ㅠㅠ 하노이문제까지만 비재귀로 바꿔봤는데, 답 코드 이해하는것만 해도 한참 걸려서 난감했거든요... 말씀을 들으니 조금 위안이 됩니다. 열공하겠습니다!

댓글을 작성하려면 로그인해야 합니다.