Skip to content

Commit a83c69b

Browse files
committed
Upload week16_DP_pdf(0407)
1 parent f7d4aa3 commit a83c69b

File tree

4 files changed

+77
-0
lines changed

4 files changed

+77
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
'''
2+
BOJ #1562. κ³„λ‹¨μˆ˜ (κ³¨λ“œ 1)
3+
https://www.acmicpc.net/problem/1562
4+
μœ ν˜•: λΉ„νŠΈλ§ˆμŠ€ν‚Ή, DP
5+
'''
6+
7+
N = int(input())
8+
MOD = 1_000_000_000
9+
BIT = 1 << 10
10+
11+
dp = [[[0] * BIT for _ in range(10)] for _ in range(N)]
12+
13+
for j in range(1, 10):
14+
dp[0][j][1 << j] = 1
15+
16+
for i in range(1, N):
17+
for j in range(10):
18+
for bit in range(BIT):
19+
nxt_bit = bit | 1 << j
20+
21+
if 0 < j:
22+
dp[i][j][nxt_bit] += dp[i - 1][j - 1][bit]
23+
24+
if j < 9:
25+
dp[i][j][nxt_bit] += dp[i - 1][j + 1][bit]
26+
27+
dp[i][j][nxt_bit] %= MOD
28+
29+
cnt = 0
30+
for j in range(10):
31+
cnt += dp[N - 1][j][BIT - 1]
32+
cnt %= MOD
33+
34+
print(cnt)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## πŸš€4μ›” 1μ£Όμ°¨ (4/07) μŠ€ν„°λ”” 발제 주제: DP
2+
> 발제자: 김홍주
3+
4+
> 주제: DP
5+
### πŸ—‚οΈ μŠ€ν„°λ”” 자료
6+
- PDF: [λ°”λ‘œκ°€κΈ°
7+
](./Study_BOJ_10844.pdf)
8+
9+
### πŸ“– 문제
10+
- [λ°±μ€€ #10844. μ‰¬μš΄κ³„λ‹¨μˆ˜](https://www.acmicpc.net/problem/10844): DP / 싀버1
11+
- μ •λ‹΅ μ½”λ“œ: [Study_BOJ_2293_10844_μ‰¬μš΄κ³„λ‹¨μˆ˜.py](./Study_BOJ_10844_μ‰¬μš΄κ³„λ‹¨μˆ˜.py)
12+
13+
14+
### πŸ’» 과제
15+
- [λ°±μ€€ #1562. κ³„λ‹¨μˆ˜](https://www.acmicpc.net/problem/1562): λΉ„νŠΈλ§ˆμŠ€ν‚Ή,DP / κ³¨λ“œ 1
16+
- μ •λ‹΅ μ½”λ“œ: [Assignment_BOJ_1562_κ³„λ‹¨μˆ˜.py](./Assignment_BOJ_1562_κ³„λ‹¨μˆ˜.py)
360 KB
Binary file not shown.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'''
2+
BOJ #10844. μ‰¬μš΄ κ³„λ‹¨μˆ˜ (싀버1)
3+
https://www.acmicpc.net/problem/10844
4+
μœ ν˜•: DP
5+
'''
6+
7+
n = int(input())
8+
9+
Mod = 1000000000
10+
# 1. μ΄ˆκΈ°ν™”
11+
# dp [총 길이 i ][λ§ˆμ§€λ§‰ μžλ¦¬μˆ˜κ°€ j] = 인 개수
12+
dp = [[0]*10 for _ in range(n+1)]
13+
dp[1][0] = 0
14+
for j in range(1,10):
15+
dp[1][j]= 1
16+
17+
# 2 점화식 N>=2
18+
for i in range(2,n+1):
19+
for j in range(10):
20+
if j== 0 :
21+
dp[i][j] = dp[i-1][j+1]
22+
elif j==9:
23+
dp[i][j] = dp[i-1][j-1]
24+
else :
25+
dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1]
26+
27+
print(sum(dp[n])%Mod)

0 commit comments

Comments
Β (0)