일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- springboot
- DP
- Spring
- 정렬
- 프로그래머스
- join
- 우선순위큐
- Database
- 다이나믹프로그래밍
- 백준
- 알고리즘
- 코테
- java
- 데이터베이스
- SQL
- IntelliJ
- DFS
- db
- mariaDB
- 탐욕법
- mybatis
- 이펙티브자바
- 너비우선탐색
- 피보나치
- BFS
- Greedy
- Effective Java
- 깊이우선탐색
- select
- 그리디알고리즘
- Today
- Total
목록피보나치 (5)
땀두 블로그

Dynamic Programming을 이용한 문제이다. 피보나치 수열을 점화식을 세워서 푼 2748번과 유사하다. https://ddamdoo.tistory.com/131 위 문제가 값들을 저장했다면 이번 문제는 각각의 이차원 배열에 0과 1의 값을 따로 구해주면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class p1003 { public static int[][] ary; public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedRe..

문제는 여태 피보나치수 문제들과 같지만 입력값의 범위가 변경되었다. https://ddamdoo.tistory.com/129 https://ddamdoo.tistory.com/130 https://ddamdoo.tistory.com/131 이 문제의 입력값은 long형으로도 불가능하다. 따라서 이전에 사용해본적이 있던 BigInteger를 사용해서 문제를 해결하였다. BigInteger에 대한 문서는 공식문서(https://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html) 또는 블로그에 간단히 정리한 문서를 참고하면 된다. https://ddamdoo.tistory.com/132 BigInteger를 이용하여 문제를 해결한 코드이다. import..

https://ddamdoo.tistory.com/129 피보나치 시리즈 1번 https://ddamdoo.tistory.com/130 피보나치 시리즈 2번 이 문제는 재귀함수의 응용이라고 볼 수 있다. 피보나치 수열의 5번째라고 예를 들면 5번째 = 3번째 + 4번째 = 1번째 + 2번째 + 4번째 = 1번째 + 2번째 + 2번째 + 3번째 = 1번째 + 2번째 + 2번째 + 1번째 + 2번째 라는 식이 나오는데 이는 1번째 *2 + 2번째 * 3과 같은 결과이다. 일반적인 재귀함수로 문제를 풀게 되면 이미 방문했던 피보나치 수열을 다시 방문하게 되어 효율이 떨어진다. 따라서 이미 방문한 값을 저장해두고 그 값이 있다면 그 값을 이용하는 형식으로 문제를 풀어야 한다. import java.util.Sc..

앞선 피보나치수 문제를 재귀로 푼 문제이다. https://ddamdoo.tistory.com/129 import java.util.Scanner; public class p10870 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int a = sc.nextInt(); System.out.println(fib(a)); } public static int fib(int i) { if (i == 0) { return 0; } else if (i == 1) { return 1; } else { return fib(i - 1) + fib(i - 2); }..

피보나치 수열을 구하는 가장 기본문제이다. 처음에 재귀로 풀었다가 시간초과가 나서 조건문을 이용하여 풀어 해결하였다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class p2747 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a = 0; int b = 1; int sum = 0; int n = Intege..