최적화가 안되서 스택이 쌓이는게 아니고 수행횟수에 따라 갈리는거면 애초에 알고리즘이 동일한게 아닌거임 - dc App
야딩조무사(cir6174)2021-09-10 19:24
100중 for문을 재귀로 짜면 함수 하나만 만들면 됨
익명(182.210)2021-09-10 19:25
깔끔하게 짜짐. 트리 순회같은 곳에서 특히 ㅇㅇ 그리고 리액트같이 프레임워크 만들다보면 강제로 써지는곳이 존재할때도 잇음. 그리고 잘못짜서 재귀가 느린게 아니고 원래 콜스택에서 함수 불러오는 소모값이 꽤 있음. 백준센세도 재귀하고 일반 큐나 while문 선택지 있음 재귀 될수있음 안쓴다함
123(1.245)2021-09-10 19:28
답글
이터레이티브한 알고리즘을 재귀로 옮기면 표현이 테일콜로 나옴
야딩조무사(cir6174)2021-09-10 19:32
답글
이런케이스는 파이썬 js 같은 언어 아닌이상 콜스택을 재활용하는 최적화가 들어가는데 컴파일되면 반복문과 동일한 코드가 나옴
야딩조무사(cir6174)2021-09-10 19:32
답글
글에서는 반복적인 알고리즘을 재귀로 옮긴다음 비교를 했다는데
실제 동작은 다르니까 알고리즘에 착오가 있거나 최적화가 안들어가는 언어나 환경에서 돌았다는거 말곤 말이 안댐
잘못짜서 그럼 - dc App
코드가 깔끔하고 짜기 쉬움
최적화가 안되서 스택이 쌓이는게 아니고 수행횟수에 따라 갈리는거면 애초에 알고리즘이 동일한게 아닌거임 - dc App
100중 for문을 재귀로 짜면 함수 하나만 만들면 됨
깔끔하게 짜짐. 트리 순회같은 곳에서 특히 ㅇㅇ 그리고 리액트같이 프레임워크 만들다보면 강제로 써지는곳이 존재할때도 잇음. 그리고 잘못짜서 재귀가 느린게 아니고 원래 콜스택에서 함수 불러오는 소모값이 꽤 있음. 백준센세도 재귀하고 일반 큐나 while문 선택지 있음 재귀 될수있음 안쓴다함
이터레이티브한 알고리즘을 재귀로 옮기면 표현이 테일콜로 나옴
이런케이스는 파이썬 js 같은 언어 아닌이상 콜스택을 재활용하는 최적화가 들어가는데 컴파일되면 반복문과 동일한 코드가 나옴
글에서는 반복적인 알고리즘을 재귀로 옮긴다음 비교를 했다는데 실제 동작은 다르니까 알고리즘에 착오가 있거나 최적화가 안들어가는 언어나 환경에서 돌았다는거 말곤 말이 안댐
분할정복 같은건 재귀가 더 직관적이자나
재귀는 함수가 값으로써 표현되게끔 만들기 위해서란다 그래서재귀는 보통 void로 안쓰지