[알고리즘9] 재귀호출 이해하기 자바 이클립스 디버깅
by 뱁새유니버스재귀호출은 전체탐색을 위해 주로 사용합니다.
다중 for문으로 전체 탐색이 가능하나 n중 for문으로 돌리기 어려운 상황이 많기 때문입니다.
import java.util.*;
// 이 프로그램은 사용자로부터 입력받은 숫자 N까지의 재귀 패턴을 출력합니다.
// 주어진 재귀 패턴은 현재 깊이를 출력하고, 해당 깊이가 N보다 작으면 두 번 재귀 호출하는 것입니다.
public class Main {
// 입력을 위한 Scanner 객체 생성
static Scanner sc = new Scanner(System.in);
// 사용자로부터 입력받을 숫자 N
static int N;
// 시작과 끝 인덱스 (현재 코드에서는 사용되지 않습니다.)
static int start, end;
// 재귀 함수 정의
static void func(int index) {
// 현재 재귀 깊이 (index)를 출력합니다.
System.out.print(index);
// 만약 현재 깊이가 N과 같다면, 재귀 호출을 중단합니다.
if(index == N) {
return;
}
// 현재 깊이보다 하나 높은 깊이로 재귀 호출을 두 번 수행합니다.
func(index + 1); // 첫 번째 재귀 호출
func(index + 1); // 두 번째 재귀 호출
// 함수를 종료합니다. (이 return은 생략 가능합니다.)
return;
}
// 메인 함수
public static void main(String[] args) {
// 사용자에게 숫자를 입력하라는 메시지 출력
System.out.println("숫자를 입력하세요.");
// 사용자로부터 숫자를 입력받아 N에 저장
N = sc.nextInt();
// 재귀 함수 호출 (시작 깊이는 0)
func(0);
}
}
반응형
'IT' 카테고리의 다른 글
Elastic Search란 무엇인가? Lucene 기반 Java 오픈 소스 라이브러리 (0) | 2024.04.01 |
---|---|
[알고리즘10] 재귀호출 Branch와 Level을 입력받아 호출횟수 출력하기 (0) | 2023.09.20 |
[알고리즘8] 개발 시 시간복잡도 고려하기 (0) | 2023.09.19 |
[알고리즘7] 문자열 입력받고 중복제거 및 오름차순 문자열 출력하기 (0) | 2023.09.19 |
[알고리즘5] 색종이 붙이기 문제 (0) | 2023.09.19 |
블로그의 정보
가슴이 웅장해지는 모든것
뱁새유니버스