문제링크: www.acmicpc.net/problem/1003
백준 단계별로 풀어보기를 시작했다.
다이나믹프로그래밍 기초1을 다 풀어볼 예정이다.
이 문제를 자바 Scanner로 입력 받았더니 시간초과가 떴다. BufferedReader로 바꾸고 통과
import java.io.*;
import java.util.*;
public class Main {
public static int []dp0; //0이 나온 횟수
public static int []dp1; //1이 나온 횟수
public static void init(){
dp0 = new int[41];
dp1 = new int[41];
dp0[0] = 1;dp0[1] = 0;
dp1[0] = 0;dp1[1] = 1;
for(int i=2;i<=40;i++){
dp0[i] = dp0[i-2] + dp0[i-1];
dp1[i] = dp1[i-2] + dp1[i-1];
}
}
public static void main(String[] args) throws Exception{
init();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder ans = new StringBuilder();
int tc = Integer.parseInt(br.readLine());
for(int i=0;i<tc;i++){
int num = Integer.parseInt(br.readLine());
ans.append(dp0[num] + " " + dp1[num] +"\n");
}
System.out.println(ans);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11054 가장 긴 바이토닉 부분 수열 (0) | 2020.12.08 |
---|---|
[백준] 2565 전깃줄 (0) | 2020.12.08 |
[백준] 2042 구간 합 구하기 (2) | 2020.12.02 |
[백준] 1072 게임 (0) | 2020.12.01 |
[백준] 1806 부분합 (0) | 2020.11.24 |