
재귀란 본인이 본인을 호출하는 개념이다.
Sum으로 간단하게 재귀에 대해서 알아보자.
package test;
import java.util.Scanner;
public class test {
static int sum(int n) {
if(n>0) {
System.out.println("n값: "+n);
return n+sum(n-1);
}
System.out.println("s");
return 0;
}
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하시오.");
int x = sc.nextInt();
System.out.println("결과값"+sum(x));
}
}
처음 sum 메서드에 5가 들어갔다고 가정해보자
return에 5+sum(4)가 된다 그럼 다시 sum메서드에 4를 넣어보자
4+sum(3)
3+sum(2)
2+sum(1)
1+sum(0)
sum(0)은 if문에 충족하지 않아 0을 return해준다
그럼 다시 역순으로
1+sum(0) = 1+0 = 1 = sum(1)
2+sum(1) = 2+1 = 3 = sum(2)
3+sum(2) = 3+3 = 6 = sum(3)
4+sum(3) = 4+6 = 10 = sum(4)
5+sum(4) = 5+10 = 15 = sum(5)
가 된다. 그래서 최종 return은 15가 되는것이다.
위에서 표현한것을 다르게 표현하면
sum(5): 5+sum(4) => 5+10 = 15
sum(4): 4+sum(3) => 4+6 = 10
sum(3): 3+sum(2) => 3+3 = 6
sum(2): 2+sum(1) => 2+1 = 3
sum(1): 1+sum(0) => 1
sum(0): 0
'알고리즘(BOJ) > Silver' 카테고리의 다른 글
1388-바닥장식(BFS) (0) | 2022.12.21 |
---|---|
2606-바이러스(BFS) (0) | 2022.12.19 |
1697 - 숨바꼭질 (BFS) (0) | 2022.12.12 |
백준 - 10994 별 찍기 19 (0) | 2022.12.07 |
백준-10870 (재귀) (0) | 2022.12.06 |