
테스트 케이스:
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] 이라는 것은 늦게 알아챈 걸까..하핳
| [파이썬/python] 백준 21921번 : 블로그 (🥈3) (윈도우 슬라이딩) (0) | 2023.08.10 |
|---|---|
| [파이썬/python] 백준 11054번 : 가장 긴 바이토닉 부분 수열 (🥇4) (0) | 2023.07.07 |
| [파이썬/python] 백준 11053번 : 가장 긴 증가하는 부분 수열 (🥈2) (0) | 2023.07.05 |
| [파이썬/python] 프로그래머스 : 카드 뭉치(Lv.1) (0) | 2023.07.05 |
| [파이썬/python] 프로그래머스 : 모의고사 (Lv.1) (0) | 2023.07.05 |