Skip to content

Commit 80e7790

Browse files
committed
[BOJ]#1562. 계단수/골드1/실패
https://www.acmicpc.net/problem/1562
1 parent 3fa41dc commit 80e7790

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Hongjoo/백준/계단수.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"""
2+
https://www.acmicpc.net/problem/1562
3+
"""
4+
N = int(input())
5+
MOD = 1e9
6+
# dp[N번째 수][마지막 수][방문한 수 bitmasking(0~1023)]
7+
dp = [[[0]*1024 for _ in range(10)] for _ in range(N+1)]
8+
9+
for i in range(1, 10):
10+
dp[1][i][1<<i] = 1
11+
12+
# n = N번째 수
13+
for n in range(2, N+1):
14+
# i = 마지막 방문 숫자가 i
15+
for i in range(10):
16+
# 0~9까지 모든 수를 방문해야 한다는 조건이 있으므로, 방문 여부를 bitmasking을 통해 저장해야 함.
17+
for bit in range(1024):
18+
if i == 0:
19+
dp[n][i][bit | (1<<i)] += dp[n-1][i+1][bit]
20+
elif i == 9:
21+
dp[n][i][bit | (1<<i)] += dp[n-1][i-1][bit]
22+
else:
23+
dp[n][i][bit | (1<<i)] += dp[n-1][i-1][bit] + dp[n-1][i+1][bit]
24+
25+
dp[n][i][bit | (1<<i)] %= MOD
26+
27+
res = 0
28+
for i in range(10):
29+
res += dp[N][i][2**10-1]
30+
31+
print(int(res%MOD))

0 commit comments

Comments
 (0)