반응형

 

📖 문제

 

📋 코드

import java.util.*;
public class Main {
	
	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		int dp[][] = new int[41][2];
		
		dp[0][0] = 1;
		dp[0][1] = 0;
		dp[1][0] = 0;
		dp[1][1] = 1;
		
		for (int i = 2; i <= 40; i++) {
			dp[i][0] = dp[i-1][0] + dp[i-2][0];
			dp[i][1] = dp[i-1][1] + dp[i-2][1];
		}
		
		for (int i = 0; i < T; i++) {
			int N = sc.nextInt();
			System.out.print(dp[N][0]+" "+dp[N][1]+"\n");
		}
	}
}

👨🏻‍💻 결과

 

 

📕 풀이 방법

N이 40일 때 "63245986 102334155" 이 출력되며 이는 "0"이 6천만, "1'이 1억 회 이상 출력된다는 의미입니다.

2차원 dp배열을 만들어 i를 증가시키면서 40까지 값을 구해 놓은 뒤 정답을 출력하도록 하였습니다.

 

🔗 링크

https://www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

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

www.acmicpc.net

 

반응형

+ Recent posts