백준알고리즘
https://www.acmicpc.net/problem/1003
문제의 함정은 피보나치에서 1과 0일때의 조건에 결과값을 하나하나씩 더하는 것이 아니다.
아래를 보면 0~9까지의 경우의 수를 적었는데 한 가지 공식이 발견된다.
i = n 일 때 [n-1][n-0], [n-1][0] + [n-1][1] 임을 알 수 있다.
i = 0일 때 1 0
i = 1일 때 0 1
i = 2일 때 1 1
i = 3일 때 1 2
i = 4일 때 2 3
i = 5일 때 3 5
i = 6일 때 5 8
i = 7일 때 8 13
i = 8일 때 13 21
i = 9일 때 21 34
import java.util.Scanner; public class Main { static int[][] resultArray = null; public static void main(String[] args) { Scanner scan = new Scanner(System.in); int count = Integer.parseInt(scan.nextLine().trim()); for(int i=0; i < count; i++) { int data = Integer.parseInt(scan.nextLine().trim()); resultArray = new int[data+1][2]; calculate(data); } scan.close(); } static void calculate(int value) { resultArray[0][0] = 1; resultArray[0][1] = 0; if(value == 0) { System.out.println(resultArray[0][0] + " " + resultArray[0][1]); return; } for(int i=1; i <= value; i++) { resultArray[i][0] = resultArray[i-1][1]; resultArray[i][1] = resultArray[i-1][0] + resultArray[i-1][1]; } System.out.println(resultArray[value][0] + " " + resultArray[value][1]); } }
'알고리즘 및 자료구조 > 문제' 카테고리의 다른 글
백준알고리즘 10845번 큐 (0) | 2018.05.02 |
---|---|
백준알고리즘 10984번 내 학점을 구해줘 (0) | 2018.05.02 |
백준알고리즘 13235번 팰린드롬 (0) | 2018.05.02 |
백준알고리즘 3047번 ABC (2) | 2018.05.02 |
백준알고리즘 8958번 OX퀴즈 (0) | 2018.05.02 |