[알고리즘] 재귀 ( Recursion )

728x90

 

◇  설명

완전 탐색( 브루트 포스 : brute force ) 시 유용
-  더 이상 쪼개지지 않는 최소한의 작업( base case = 기저사례 )에 도달했을 때 답을 곧장 반환하는 조건문 필요
-  일반적인 재귀 호출은 하나와 그 나머지 부분으로 분할

 

◇  코드

ex)  

public class Test {
	
	public static void printDown( int n ) {
		System.out.println( n );
		if( n == 1 ) return; 
		printDown( n-1 );
	}
	
	public static void printUp( int n ) {
		System.out.println( n );
		if( n == 10 ) return; 
		printUp( n+1 );
	}
	
	public static int sum( int n ) {
		if( n == 1 ) return 1;
		return n + sum( n - 1 );
	}
	
	public static int factorial( int n ) {
		if( n == 1 ) return 1;
		return n * factorial( n - 1 );
	}
	
	public static void main(String[] args) {
	
		printDown(5);
		printUp(5);
		System.out.println( sum(5) );
		System.out.println( factorial(5) );
	}
}

 

◇  출처

  -  설명  --  알고리즘 문제 해결 전략 ( 구종만 )
  -  코드  --  〃, 코딩 인터뷰 완전 분석 ( 게일 라크만 맥도웰 )

 

 

반응형