Recursion을 이용해 다양한 문제 풀기 수학함수뿐 아니라 다른 많은 문제들을 recursion으로 해결할 수 있다. 문자열의 길이 계산 public class Test01 { public static void main(String[] args) { System.out.println(length("Hello")); // 5 } public static int length(String str) { if (str.equals("")) return 0; else return 1 + length(str.substring(1)); // 1 + 첫글자를 제외한 문자열의 길이 } } 문자열의 프린트 public class Test02 { public static void main(String[] args) { p..
재귀 재귀란 무엇일까? 재귀의 사전적 의미를 보면 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻 한다. 재귀함수 그렇다면 재귀함수란 무엇일까? 간단하게 말하자면 자기 자신을 호출하는 함수이다. 사용조건 문제의 크기를 점점 작은 단위로 쪼갤 수 있어야 된다. 재귀 호출이 종료되는 시점이 있어야 된다. 만약, 종료되는 시점이 없다면 무한 루프에 빠지게 된다. 간단한 예제를 보자. public class Test01 { public static void main(String[] args){ func(); } public static void func(){// 자기 자신을 호출하는 함수. 즉, 재귀함수 System.out.println("Hello!"); func(); } } 위의 경우 재귀 호출이 종료되..