반응형 피보나치2 [JAVA] 다이나믹 프로그래밍 (Dynamic Programming) 목차 다이나믹 프로그래밍의 조건 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해결할 수 있다. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결해야 한다. 비효율적인 피보나치 수열 구현 import java.util.*; public class Main { // 피보나치 함수(Fibonacci Function)을 재귀함수로 구현 public static int fibo(int x) { if (x == 1 || x == 2) { return 1; } return fibo(x - 1) + fibo(x - 2); } public static void main(String[] args) { System.out.println(fibo(4)); } } 탑다.. ETC/자료구조 이론 2022. 9. 19. [알고리즘] 재귀함수 (Recursive Function) 재귀함수 재귀함수란 함수 내에서 자기 자신을 호출하여 작업을 수행하는 방식의 함수이다. 재귀함수를 작성할 때는 함수 내에서 자기 자신을 다시 호출한 후, 그 함수가 끝날 때까지 함수 호출 이후의 명령문이 수행되지 않는다는 사실과 종료조건이 꼭 포함되어야한다는 부분을 인지하고 작성하면 오버플로우를 피할 수 있다. 다시말해 재귀함수에서 중요한 부분은 실행을 마무리짓는 부분과, 계속 재귀를 실행하는 부분이 존재한다는것이다. 또한 그것이 일반적으로는 n이 0이나 1이 되면 종료하게 되게끔 구성이 되어있다. 1. 카운트다운 def countdown(n) : # 0 이 되는순간 end 출력 if n==0 : print("end") # 받은 인자 출력 및, n-1 한값을 다시 재귀 else : print(n) cou.. ETC/알고리즘 이론 2021. 8. 2. 이전 1 다음 💲 추천 글 반응형