PS/inflearn java coding

계단오르기

easy16 2022. 4. 14. 22:32

전략

 

다이나믹 table을 만든다

 

한번에 1 or 2번씩 올라갈 수 있을 때

1번 계단 오르는 방법 1

2번 계단 오르는 방법 2

 

3번 계단 오르는 방법, 1번계단에서 2칸 오르기 or 2번 계단에서 1칸 오르기

따라서 3번계단 오르는 방법 = 1번 계단오르는 방법 + 2번 계단 오르는 방법

 

4번 계단 오르는 방법, 2번계단에서 2칸 오르기 or 3번 계단에서 1칸 오르기

..

피보나치

 

 

 

class Main {

	static int m, n, answer;
	static int []dy;
	public static void main(String args[]) throws Exception {
		Main M = new Main();
		Scanner in = new Scanner(System.in);

		n = in.nextInt();
		dy = new int[n+1];
		
		dy[1]=1;
		dy[2]=2;
		for (int i =3 ; i <= n; i++) {
			dy[i] =dy[i-2]+dy[i-1];
		}
		
		System.out.println(dy[n]);

	}

}

ex)
input
7
output
21