본문 바로가기
CS

[CS] 재귀함수 vs for문

by ahj 2021. 10. 3.

재귀함수는 꽤나 재밌고 구현하기에 어렵다... 그래도 이해하면서 문제 푸니까 재밌다!

문득 재귀함수랑 for문의 차이가 뭘까 궁금해져서 검색을 통해 공부해봤다. 

https://velog.io/@gillog/Algorithm-%EC%9E%AC%EA%B7%80%EC%99%80-%EB%B0%98%EB%B3%B5%EB%AC%B8

 

[Algorithm] 재귀와 반복문

Algorithm 문제를 풀때 보통 while이나 for문 같은 반복문을 이용해 문제를 풀곤 했다.하지만 반복문 만으로는 풀기 어려운 문제들이나, 재귀 함수로 푸는 것이 더 빠르게 접근 가능한 문제들의 경우(

velog.io

위 블로그에 원하는 정보가 잘 정리되어 있었다.

간단히 말하면 for문이 더 좋은 것 같다.

속도적 측면에서도 for문이 더 우위에 있고 메모리 공간 측면에서도 재귀함수가 stack에 계속해서 쌓이기 때문에 더 불리하다고 한다. 그래서 stack overflow의 문제로 프로그램 비정상 종류가 발생할수도 있다고

그러면 도대체 왜? 재귀함수를 사용하는가 굳이 백준 단계별 문제에 있는 이유가 있지 않을까? 궁금해졌다.

 

위 블로그에 따르면 또 여러 블로그들도 공통적으로 하는 이야기가 코드를 더 깔끔하게 작성할 수 있다는 것이었다.

피보나치 수열이나, 오늘 함께 작성하려고 하는 재귀함수 문제의 하노이 탑과 같은 문제들에서 더 1.간단한 구현이 가능하다고-> 가독성 향상으로 이어지는 장점

또 하나는 변수 사용을 줄임으로 2.사이드 이펙트(side effect)가 없다는 점

 

성능적 측면에서 메모리, 속도 모두 뒤쳐지는 재귀함수지만 협업하는 상황에서 가독성 좋은 재귀함수는 도움이 될 것이라고 한다.

기대된다 ㅎㅎ

'CS' 카테고리의 다른 글

[CS] 비트단위(bitwise) 연산자  (0) 2021.09.21
[CS] Overflow  (0) 2021.09.21

댓글