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) );
}
}
◇ 출처
- 설명 -- 알고리즘 문제 해결 전략 ( 구종만 )
- 코드 -- 〃, 코딩 인터뷰 완전 분석 ( 게일 라크만 맥도웰 )
반응형
'컴퓨터 공학 ( Computer Science ) > 알고리즘 ( Algorithm )' 카테고리의 다른 글
[알고리즘 기법] 분할정복법 ( Divide and Conquer ) (0) | 2021.03.20 |
---|---|
[알고리즘 기법] 동적계획법 ( 다이나믹 프로그래밍 : DP ( Dynamic Programming ) ) (0) | 2021.03.20 |
[알고리즘 기법] 탐욕법 ( 그리디 : Greedy ) (0) | 2021.03.20 |
[알고리즘 기법] 완전탐색 ( 브루트 포스 : Brute-Force ) (0) | 2021.03.19 |
[알고리즘] 정렬 ( Sort ) (0) | 2021.03.19 |