본문 바로가기
백준

백준 1003번 : 피보나치 함수

by Huiyeong 2021. 3. 19.

 문제

www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

1003 피보나치 함수

 

 구현 방법

 int 배열을 선언하여 0의 개수와 1의 개수를 따로 세주었습니다.

N이 0일 때 0의 개수는 1, 1의 개수는 0

N이 1일 때 0의 개수는 0, 1의 개수는 1

N이 1보다 크면 i-2의 0 개수, i-1의 0 개수를 더해서 i의 0값에 저장, i-2의 1 개수, i-1의 1 개수를 더해서 i의 1값에 저장해줍니다.

 

 구현 코드

package BOJ.Silver;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BOJ1003_피보나치수열 {
	static int[][] dp;
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int TC = Integer.parseInt(br.readLine());
		for (int tc=0;tc<TC;tc++) {
			int N = Integer.parseInt(br.readLine());
			dp = new int[N+2][2];
			dp[0][0] = 1; // N이 0일 때 0 개수
			dp[0][1] = 0; // N이 0일 때 1 개수
			dp[1][0] = 0; // N이 1일 때 0 개수
			dp[1][1] = 1; // N이 1일 때 1 개수
			for (int i=2;i<=N;i++) {
				dp[i][0] = dp[i-1][0]+dp[i-2][0];
				dp[i][1] = dp[i-1][1]+dp[i-2][1];
			}
			
			System.out.println(dp[N][0]+" "+dp[N][1]);
		}
	}
}

 

정답!

'백준' 카테고리의 다른 글

백준 9095번 : 1, 2, 3 더하기  (0) 2021.03.19
백준 1010번 : 다리 놓기  (0) 2021.03.19
백준 2210번 : 숫자판 점프  (0) 2021.03.18
백준 2583번 : 영역 구하기  (0) 2021.03.18
백준 1937번 : 욕심쟁이 판다  (0) 2021.03.18