2025. 6. 19. 00:35ㆍPS 풀이/Code Tree
문제
https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-climbing-stairs/description
계단 오르기 설명 | 코드트리
계단 오르기를 풀며 문제 구성과 난이도를 파악해 적절한 알고리즘을 선정해보세요. 효율적인 코드 작성을 목표로 합니다.
www.codetree.ai
풀이
문제 요약
주어진 규칙대로만 계단을 오를 수 있을 때, N층 높이의 계단을 오르는 모든 경우의 수를 구하자.
아이디어
점화식은 다음과 같다.
dp[i] : i 번째 계단을 오르는 모든 경우의 수
계단은 2칸 또는 3칸씩만 오를 수 있으므로, 현재 계단까지 오르기 위해서는 2/3칸 낮은 계단에서 올라오는 경우의 수만 존재하기 때문이다.
- dp[i] = 1, { N = 2 or 3 }
- dp[i] = 0, ( N = 1 )
- dp[i] = dp[i - 2] + dp[i - 3]
수가 너무 커질 수 있으니, 1e4 + 7로 나눈 나머지를 출력하자.
n = int(input())
# Please write your code here.
def solve(N):
if N <= 3:
return 1
MOD = int(1e4) + 7
dp = [0] * (N + 1)
dp[2] = 1
dp[3] = 1
for i in range(4, N + 1):
dp[i] = (dp[i - 2] + dp[i - 3]) % MOD
return dp[N]
print(solve(n))
풀이시간
5분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/code-tree/Algorithm Intro/DP I/02 계단 오르기(challenge-climbing-stairs).py
problem-solving/code-tree/Algorithm Intro/DP I/02 계단 오르기(challenge-climbing-stairs).py at main · rogi-rogi/problem-so
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > Code Tree' 카테고리의 다른 글
| [Code Tree] 사각형 채우기 2 [Python] (0) | 2025.06.23 |
|---|---|
| [Code Tree] 서로 다른 BST 개수 세기 [Python] (0) | 2025.06.22 |
| [Code Tree] 사각형 채우기 3 [Python] (0) | 2025.06.21 |
| [Code Tree] 사각형 채우기 [Python] (0) | 2025.06.20 |
| [Code Tree] 피보나치 수 [Python] (0) | 2025.06.18 |