티스토리 뷰
1. 문제
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
2. 설명
피보나치인데 조금 다른? 문제!
0의 수랑 1의 수를 계산해서 출력하는 문제인데,
출력하는 부분이 다를 뿐 기본적으로 피보나치랑 같다.
피보나치 결과를 저장하지 않고 각각 호출하는 0과 1의 수를 저장해두고 출력했다.
n의 최댓값이 40이라서 함수 크기는 41, 2는 0과 1을 저장해야 되므로 2로 잡았다.
3. 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
int[] n = new int[T];
int[][] fibonacci = new int[41][2];
for(int i=0; i<T; i++) {
n[i] = scan.nextInt();
}
fibonacci[0][0] = 1;
fibonacci[0][1] = 0;
fibonacci[1][0] = 0;
fibonacci[1][1] = 1;
for(int i=0; i<T; i++) {
for(int j=2; j<=n[i]; j++) {
fibonacci[j][0] = fibonacci[j-1][0] + fibonacci[j-2][0]; // 0의 수
fibonacci[j][1] = fibonacci[j-1][1] + fibonacci[j-2][1]; // 1의 수
}
System.out.println(fibonacci[n[i]][0] + " " + fibonacci[n[i]][1]);
}
}
}
'알고리즘 풀이 > 백준' 카테고리의 다른 글
백준 1149 RGB거리 JAVA (DP) (0) | 2020.07.05 |
---|---|
백준 11726 2xn 타일링 JAVA (DP) (0) | 2020.07.04 |
백준 9095 1, 2, 3 더하기 JAVA (DP) (0) | 2020.07.03 |
백준 1463 1로 만들기 JAVA (DP) (0) | 2020.07.02 |
백준 11723 집합 JAVA (bitmask 비트마스크) (0) | 2020.06.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday