무.적.권. DP다
1칸 or 2칸이므로 dp[i] = dp[i - 1] + dp[i - 2]
를 해주면 된다.
누구보다 빠르게 호기롭게 제출했는데 다른 사람 풀이... 충격적^^
나는 리스트를 할당해서 dp의 0~n까지 값을 구해서 저장했는데, 사실 모든 수를 저장할 필요는 없다.
i-1인덱스 값과 i-2인덱스 값만 알면 되기 때문...
그걸 이용해서 다른사람이 기깔나게 풀었다...
쉬운 문제라 블로그 정리 없이 넘어가려 했는데 다른 사람 코드가 넘나 기깔나서... 가져왔다..
난 아직 갈길이 멀었다^^~.............. ㅠ
노잼 내 코드
def solution(n):
dp = [0] * (n + 1)
dp[0] = dp[1] = 1
for i in range(2, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
return dp[-1] % 1234567
대유잼 다른 사람 코드
def solution(n):
a, b = 1, 1
for i in range(2, n + 1):
a, b = b, a + b
return b % 1234567
설명... 생략...