본문 바로가기

recursion2

(Recursion) 미로 찾기 출처: 인프런-영리한 프로그래밍을 위한 알고리즘 강좌(권오흠 교수님) 위와 같은 그림의 미로가 있다고 할 때 입구에서 출구로 빠져나가기 위한 경로를 구하고자 한다면 어떠한 방법이 최선일까요? 2중 for문을 통해서 찾아갈 수도 있겠지만 이는 너무 어리석은 짓이고.. recursion을 통해 해결할 수 있을 겁니다. 먼저 recursion을 통해 해결하기 위한 base case를 보면 다음과 같습니다.base case:참조된 점 (x,y)가 이미 출구인 경우 참조된 점 (x,y)가 벽인 경우그렇다면 recursion case는 무엇일까요? 이는 참조되고 있는 자기 자신을 제외한 인접한 점들에 대하여 재귀적으로 함수를 호출하면 될것같습니다.recursive case: 인접한 4개의 점들에 대해 재귀적으로 검.. 2017. 7. 9.
Recursive(재귀 함수) Recursion : 자기 자신을 호출하는 함수를 지칭함ex)func() {print("hello world!");func();}무한루프를 방지하기 위한 조건base case: 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 함Recursive case: recursion을 반복하다보면 결국 base case로 수렴해야 함 순환 함수와 수학적 귀납법- ex) 정리: func(int n)은 음이 아닌 정수 n에 대해 0~n 까지의 합을 계산한다증명:n=0인 경우 0을 반환임의의 양의 정수 k에 대해 n=n인 양의 정수 m, n에 대해 m이 n의 배수라면// gcd(m,n)=n이고, 그렇지 않으면 gcd(n,m%n)이다if(n>m)swap(m,n);if(m%n==0)return n;else r.. 2017. 7. 8.