[파이썬/python] 백준 10844번 : 쉬운 계단 수 (🥈1)

 

테스트 케이스:

1 : 9

2 : 17

3 : 32

4 : 61

5 : 116

6 : 222

7 : 424

n = int(input())

dp = [[1 for i in range(10)] for i in range(n)]
dp[0][0] = 1

for i in range(1, n):
    dp[i][0] = dp[i-1][1]
    dp[i][9] = dp[i-1][8]
    for j in range(1,9):
        dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1]

print(sum(dp[-1][1:]) % 1000000000)

해맸던 부분: 2차원 배열, dp[i][0] 의 값

처음에 2차원 배열을 생성하려면 dp = [[1 for i in range(10)] for i in range(n)] 이런 형식으로만 해야 하는 지 모르고 곱하기 연산자도 되는 줄 알고 썼더니 대체 왜 이러는 거지?? 대체 왜 이렇게 계산이 되는 거지..하면서 한 20분 헤맨 것 같다 ㅎㅎㅎㅎㅎ

진짜 도무지 모르겠어서 똑같이 2차원 배열을 만들고 특정 행의 인덱스에다 다른 값을 줘봤는데,, 모든 행의 인덱스가 변하는 것이다.

그래서 이게 아니구나 싶어서 2차원 배열을 검색해서 다시 풀었다..

그리고 dp[i][0]의 값이 어떻게 되어야 하는지 헷갈렸는데 왜 dp[i][9]일 때는 dp[i-1][8] 이라는 것은 쉽게 알았으면서 dp[i][0]은 dp[i-1][1] 이라는 것은 늦게 알아챈 걸까..하핳

 

 

 

comment