검색해보고 짤막하게 본것만 보면
함수한바뀌돌리고 다시 자기자신을 불러서 돌리는
근데 탈출조건없으면 무한루프돌다 팅기고
탈출조건만들어주면 엥? 이거완전 반복문아님?
재귀함수 장점은 뭐임?
반복문쓰면될껄 굳이 재귀함수로 하는이유가?
함수계속 불러대다가 스택이 빡쳐서
야! 그만좀불러! 머리터지겠다! 하고
스택오버플로우가 날수도있다는 단점이있는데도
재귀함수를 쓰는 장점이나 이유가 있는거아님?
대충찾아본바로는
장점으로 가독성이좋다정도인데..
디버깅이 까다롭고 느리고 스택사용량이높아진다는데..
그정도의 가치가있는거임?
제가 낸 문제 풀어보세용 낄낄
단순한 가독성의 문제가 아니라, 논리적으로 단순하다는거지. 그냥 단순하다는 것도 아니고 뭐라고 할까... 이치적으로 맞다고 해야하나? "이치에 맞다" 그런거임. 이치에 맞게 손쉽고 간결하게 구현되는게 바로 재귀함수라는거. 재귀함수를 이해만 하고, "문제만 없다면" 쓰는게 속편함. 문제가 있으면 반복문으로 구현해야지. 보통 그 문제가 스택이나 퍼포먼스 그런쪽의 문제고.
재귀가 어렵게 느껴지는 이유는 포인터가 어렵게 느껴지는 이유와 유사함. 별로 안써봐서 그런거임. 포인터도 포인터를 이용한 여러작업을 해보면, 손쉽게 느껴지듯이, 재귀도 여러가지 재귀작업을 해보면 이해는 어렵지 않음. 구조적으로 중간급 이상의 복잡한 논리구조에서는 재귀로 구성하는게 손쉬운게 많음.