문제
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
구현 방법
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 |