-
[백준/JAVA] 1003번 피보나치 함수 - DPETC/Algorithm 2023. 6. 9. 10:13
풀이
규칙 찾기
앞이 0의 개수, 뒤가 1의 개수이다.
앞의 2개의 배열의 각각의 자리의 합이 현재의 값이 된다.
2차원 배열을 선언해서 풀면 된다.dp[n][0] = n의 0 횟수
dp[n][1] = n의 1 횟수 이다.코드
제출 코드
import java.io.*; class Main { static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); 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 < 41; 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 = Integer.parseInt(br.readLine()); bw.write(dp[n][0] + " " + dp[n][1]); bw.write("\n"); } bw.flush(); } }