문제
문제 해결 과정
처음에 문제를 풀려고 했을 때는
이렇게 문제해결과정을 썻었는데 DP 문제이다 보니 규칙성이 있을 것같아 버튼을 여섯번 누를 때까지의 a,b의 개수를 세 보았다.
세보니 규칙성이 나왔다.
A → BA → BAB → BABBA ... 이런식으로 직접 규칙에 따라 A,B를 변환해 가면서 A,B의 개수를 세보았다.
K번 | A의 개수 | B의 개수 |
---|---|---|
1 | 0 | 1 |
2 | 1 | 1 |
3 | 1 | 2 |
4 | 2 | 3 |
5 | 3 | 5 |
6 | 5 | 8 |
A의 개수는 B의 K-1번 째의 개수와 동일
B의 개수는 K-1번째의 A와 B의 개수를 더한 값
이렇게 A,B값의 규칙성을 찾았고 이를 수식으로 표현하여 코드를 구현하였다
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int k=scan.nextInt();
int A=0; int B=1;
int sum=0;
for(int i=1;i<k;i++){
sum=A+B;
A=B;
B=sum;
}
System.out.println(A);
System.out.println(B);
}
}
회고
처음에 A,B를 규칙에 따라 변환할 때 잘못변환해서 규칙성을 못 찾았었다.
처음부터 다시 문제를 읽어보고 다시 해보니 규칙성을 찾을 수 있었다.
앞으로는 문제를 제대로 읽어야겠다.