https://www.codetree.ai/missions/2/problems/climbing-stairs/description
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
코드:
#include <bits/stdc++.h>
using namespace std;
int n;
int dp[1005];
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
dp[1] = 0;
dp[2] = 1;
dp[3] = 1;
for (int i = 4; i <= 1000; i++) {
dp[i] = (dp[i - 2] + dp[i - 3]) % 10007;
}
cout << dp[n];
}
n층의 계단을 오를 수 있는 방법을 생각해봅시다.
우리가 한 번에 계단을 오를 수 있는 방법은 2칸,3칸씩 두 가지 방법이므로
(n-2 층의 계단을 오를 수 있는 방법) + (n-3 층의 계단을 오를 수 있는 방법) 을 계산하여
n층의 계단을 오를 수 있는 방법을 구할 수 있습니다.
ex) n이 4라고 하면 (2층 계단을 오를 수 있는 방법) + (1층 계단을 오를 수 있는 방법)
= 1 + 0 = 1 로 구할 수 있습니다. 실제로 4층 높이 계단을 도달할 수 있는 방법은
2칸(2층 계단을 오를 수 있는 방법) + 2칸, 즉 1가지 방법밖에 존재하지 않습니다.
'C++ > 코드트리 챌린지' 카테고리의 다른 글
[코드트리 챌린지] 3주차 DP l - 격자 안에서 한 칸씩 전진하는 DP / 정수 사각형 최대 합 (1) | 2023.09.25 |
---|---|
[코드트리 챌린지] 3주차 DP l - subproblem을 그대로 합치면 되는 DP / 사각형 채우기 (0) | 2023.09.24 |
[코드트리 챌린지] 3주차 DP l - subproblem을 그대로 합치면 되는 DP / 피보나치 수 (0) | 2023.09.24 |
[코드트리 챌린지] 3주차 BFS - 가중치가 동일한 그래프에서의 BFS / 나이트 (0) | 2023.09.22 |
[코드트리 챌린지] 3주차 BFS - 가중치가 동일한 그래프에서의 BFS / 최소 경로로 탈출 하기 (0) | 2023.09.22 |