본문 바로가기

재귀함수4

[알고리즘] 7-4 피보나치 수열 - 재귀함수, 메모이제이션 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : n이 입력되면 피보나치 수열 n개의 항을 출력 피보나치수열 : 앞의 2개의 수를 합하여 다음 숫자가 되는 수열(첫 번째와 두 번째 항은 1) 자료 구조 책에서 재귀를 설명할 때 흔히 볼 수 있는 문제로 보통 반복문 또는 재귀 두 가지 방법으로 풀이하는데 이번 문제에서는 재귀와 메모이제이션을 사용하여 풀이한다.(물론 속도는 반복문을 사용하는 쪽이 더 빠르다) 참고 : 반복문으로 푸는 방법 재귀를 사용한 풀이 package inflearn; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt.. 2021. 6. 13.
[알고리즘] 7-3 팩토리얼 - 재귀함수 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : 자연수 n이 입력되면 n! 을 구하는 문제 자료구조 책과 같은 곳에서 재귀함수를 설명할 때 흔히 볼 수 있는 문제이다. 풀이 재귀를 사용하여 풀이 n이 5일때, 메서드의 호출과 반환 과정은 다음과 같다.(->는 메서드 호출 순서, 2021. 6. 13.
[알고리즘] 7-2 재귀함수를 이용한 이진수 출력 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : 10진수 n이 입력되면 2진수로 변환하여 출력하는 문제 풀이 10진수를 2진수로 변환하는 방법 10진수를 몫이 1이 될때까지 2로 나눈다. 마지막 남은 몫 1과 나누기 과정에서 생긴 나머지들을 역순으로 적어준다. 11(10) -> 1011(2) 재귀와 위의 계산 방법을 코드에 그대로 적용하여 풀이 package inflearn.recursive_tree_graph; import java.util.Scanner; //재귀함수를 이용한 이진수 출력 public class Main7_2 { public static void recursive(int n) { if (n == 0) retu.. 2021. 6. 13.
[알고리즘] 7-1 재귀함수 (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의) 인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다. 문제 설명 : 자연수 n이 입력되면 재귀함수를 이용해 1~n까지 출력하는 문제 풀이 package inflearn.recursive_tree_graph; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //재귀 함수 : n이 입력되면 1~n까지 출력하는 문 public class Main7_1 { public static void recursive(int n) { if(n == 0) return; recursive(n-1); System.out.print(n + " "); } p.. 2021. 6. 13.