728x90
https://www.acmicpc.net/problem/9625
● 문제
초기상태는 A 1번 눌렀을땐 B 2번 눌렀을 땐 BA 3번 눌렀을땐 BAB 4번 눌렀을땐 BABBA.....
이는 화면에 A는 B로 바뀌고 B는 BA로 바뀐다는 걸 알 수 있다. 각 A,B의 횟수를 표로 나타낸다면
클릭수(K) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A갯수 | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 |
B갯수 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 |
각 숫자를 비교해보면 전전의 값과 전의 값을 더한 값이 현재의 값인걸 확인할 수 있다.
이는 피보나치수열과 똑같다는것을 의미한다!
이를 이용한 DP코드를 만들어 보았
● 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int K = Integer.parseInt(br.readLine());
int[][] dp = new int[2][46];
dp[0][2] = 1;
dp[1][1] = 1;
dp[1][2] = 1;
for(int i = 3; i <= K; i++) {
dp[0][i] = dp[0][i-2] + dp[0][i-1];
dp[1][i] = dp[1][i-2] + dp[1][i-1];
}
System.out.println(dp[0][K] + " " + dp[1][K]);
}
}
728x90
'Study > BaekJoon' 카테고리의 다른 글
[백준 자바JAVA] 10826번 - 피보나치 수 4 (0) | 2024.07.11 |
---|---|
[백준 자바JAVA] 13301번 - 타일 장식 (0) | 2024.07.10 |
[백준 자바JAVA] 2839번 - 설탕 배달 (0) | 2023.05.26 |
[백준 자바JAVA] 2720번 - 세탁소 사장 동혁 (2) | 2023.05.26 |
[백준 자바JAVA] 2231번 - 분해합 (0) | 2023.03.04 |