본문 바로가기

Java

[JAVA] 재귀함수 간단한 예제로 이해하기

728x90

 

프로그래머스 코딩테스트를 진행하다 재귀함수를 쓸 일이 있어서 찾아보았다.

꽤나 이해하는데 시간이 걸렸던지라 블로그에도 적어본다.

재귀함수란?

내부적으로 자기 자신을 호출하는 함수를 재귀함수라고 하는데, 재귀 호출(자신 호출)을 너무 많이 하게 되면 스택 메모리 영역에 너무 많은 공간을 할당하게 되어 스택 오버플로가 발생할 수 있으므로 반드시 종료조건이 있어야 한다.

아래의 간단한 예제를 통해 이해를 해보자.

간단 예제

나도 이해가 꽤나 어려웠기에 간단한 예제를 통해 알아보려고 한다.

public void main(String[] args) {
    int a = 1;
    System.out.println(loop(a));
}

public int loop(int a) {
    if(a > 5) return a;
    return loop(a+1);
}

 

위의 예제를 보면 loop메서드에 a를 담는다.

loop는 a가 5보다 커질 때까지 계속해서 loop를 호출하는데 a+1을 해줌으로써 계속해서 1씩 늘려간다.

그러다 6이 되는 시점에 a를 리턴해주는데, 코드를 실행하면 콘솔에 6이 찍히는 것 확인가능하다.

 

이상 간단한 예제를 통하여 재귀함수를 알아보았다.

 

프로그래머스 구슬을 나누는 경우의 수 문제를 풀면 재귀함수를 사용할 수도 있는데

해당문제풀이를 통해 좀 더 심화과정?을 풀어보면 좋을 것 같다!

혹시나 문제를 풀 때 참고할 문제풀이는 https://mini0726.tistory.com/28 를 참고하면 좋음!

 

태클은 환영!

 

반응형

'Java' 카테고리의 다른 글

[JAVA] print, println의 차이점  (0) 2024.02.05
[MyBatis] <!cdata[ 사용  (0) 2024.01.26