using Java 11
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class boj1003 {
public static int zeroCount;
public static int oneCount;
public static int zeroPlusOne;
public static void fib(int num) {
zeroCount = 1;
oneCount = 0;
zeroPlusOne = 1;
for(int i = 0; i < num; i++) {
zeroCount = oneCount;
oneCount = zeroPlusOne;
zeroPlusOne = zeroCount + oneCount;
}
}
public static void main(String args[]) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 0; i < N; i++) {
int num = Integer.parseInt(br.readLine());
fib(num);
sb.append(zeroCount).append(" ").append(oneCount).append("\n");
}
System.out.println(sb);
}
}
📍 DP를 정복해보자
매번 할 때마다 어렵다... 쉬운 거라도 하나씩 해서 정복 해보자ㅠ
이번 문제는 정석적으로 풀었다기 보다는 규칙을 찾아서 풀었다. 생각으로는 0, 1 두 개 열을 가진 이차원 배열을 선언해서 메모이제이션 하는 방식으로 하려 했는데 간단한 규칙이 보여 이걸로 해결했다.
📍 BufferedReader, StringBuilder 사용
확실히 스캐너 보다 시간적으로 유리하다는 걸 확인했다. 자바로 풀이 한지 얼마 안 됐는데 친해져보자 자바,,