일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 우아한테크캠프
- 프레임워크
- 백준
- Database
- 알고리즘
- SQL
- 데이터베이스
- BOJ
- Java
- Backtracking
- Spring
- Vue
- 웹프로그래밍
- 연습문제
- codeground
- JPA
- 단위테스트
- BFS
- react
- BAEKJOON
- Algorithm
- DFS
- springboot
- TypeScript
- mobx
- 우아한형제들
- 탐색알고리즘
- framework
- Vue.js
- JavaScript
- Today
- Total
설모의 기록
[백준 1003] 피보나치 함수 본문
이 문제는 간단한 동적계획법 문제입니다. 이전 값들을 배열에 저장해놓고 다음 배열 값에는 이전 값들을 읽어와 저장을 하는 방식입니다.
소스코드
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { static int[][] dp = new int[41][2]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); int min = Integer.MIN_VALUE; int T = Integer.parseInt(st.nextToken()); dp[0][0] = 1; dp[0][1] = 0; dp[1][0] = 0; dp[1][1] = 1; for (int i= 0; i < T; i++) { st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); if (N > min) { min = N; for (int j = 2; j <= N; j++) { dp[j][0] = dp[j - 1][0] + dp[j - 2][0]; dp[j][1] = dp[j - 1][1] + dp[j - 2][1]; } } bw.write(dp[N][0] + " " + dp[N][1] + "\n"); } bw.flush(); } }
'알고리즘' 카테고리의 다른 글
BFS 와 DFS (0) | 2018.03.21 |
---|---|
A* 알고리즘 (2) | 2018.03.15 |
[백준 11866] 조세퍼스 문제 (0) | 2017.12.20 |
[백준 1260] DFS 와 BFS (0) | 2017.12.20 |
[백준 1966] 프린터 큐 (0) | 2017.12.20 |