Climbing Stairs
LeetCode 70. Climbing Stairs
원문
You are climbing a staircase. It takes n
steps to reach the top.
Each time you can either climb 1
or 2
steps. In how many distinct ways can you climb to the top?
풀이
n
이 1이라면 1을 반환한다.
아니라면 현재 값을 나타내는 변수 now
와 이전 값을 나타내는 변수 before
를 선언한다. 둘 모두 초기값은 1이다.
1부터 n - 1
까지 순회하며 다음을 반복한다.
- 변수
temp
에now
의 값을 저장한다. now
를temp + before
로 갱신한다.before
의 값을temp
의 값으로 변경한다.
순회가 끝나면 now
를 반환한다.
코드
Python
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def climbStairs(self, n: int) -> int:
if n == 1: return 1
now, before = 1, 1
for i in range(1, n):
temp = now
now = temp + before
before = temp
return now
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int climbStairs(int n) {
if (n == 1) {
return 1;
}
int now = 1, before = 1;
for (int i = 1; i < n; i++) {
int temp = now;
now = temp + before;
before = temp;
}
return now;
}
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.