문제 : LeetCode 70. Climbing Stairs (https://leetcode.com/problems/climbing-stairs/description/)
1) 1칸과 2칸의 조합으로 n칸을 올라야 함
2) n칸 오르는 방법
: (n-1)칸을 오르고 + 1칸 오르기
: (n-2)칸을 오르고 + 2칸 오르기
3) n=1 -> 1, n=2 -> 2
class Solution {
public:
int climbStairs(int n) {
int result = 0;
if (n == 1) return 1;
if (n == 2) return 2;
int s1 = 1, s2 = 2, s3;
for (int i = 2; i < n ; i++) {
s3 = s1 + s2;
s1 = s2;
s2 = s3;
}
return s2;
}
};
시간복잡도를 고려하여 구현하기.