-
[λ°±μ€] 1904 01νμΌ with PythonPS 2022. 2. 2. 00:43728x90λ°μν
π BOJ 1904 01νμΌ
π‘ 쑰건
κ°κ°μ νμΌλ€μ 0 λλ 1μ΄ μ°μ¬ μλ λ±μ₯μ νμΌλ€μ΄λ€.
λμ£Όκ° μ§μμ΄μ 곡λΆλ₯Ό λ°©ν΄νκΈ° μν΄ 0μ΄ μ°μ¬μ§ λ±μ₯μ νμΌλ€μ λΆμ¬μ ν μμΌλ‘ μ΄λ£¨μ΄μ§ 00 νμΌλ€μ λ§λ€μλ€.
κ²°κ΅ νμ¬ 1 νλλ§μΌλ‘ μ΄λ£¨μ΄μ§ νμΌ λλ 0νμΌμ λ κ° λΆμΈ ν μμ 00νμΌλ€λ§μ΄ λ¨κ² λμλ€.N=1μΌ λ 1λ§ λ§λ€ μ μκ³ , N=2μΌ λλ 00, 11μ λ§λ€ μ μλ€. (01, 10μ λ§λ€ μ μκ² λμλ€.)
λν N=4μΌ λλ 0011, 0000, 1001, 1100, 1111 λ± μ΄ 5κ°μ 2μ§ μμ΄μ λ§λ€ μ μλ€.Nμ΄ μ£Όμ΄μ§λ€.
(1 β€ N β€ 1,000,000)μ§μμ΄κ° λ§λ€ μ μλ κΈΈμ΄κ° NμΈ λͺ¨λ 2μ§ μμ΄μ κ°μλ₯Ό 15746μΌλ‘ λλ λλ¨Έμ§λ₯Ό μΆλ ₯νλ€.
DP μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin n = int(stdin.readline()) dp = [0 for _ in range(1000001)] dp[1], dp[2], dp[3], dp[4] = 1, 2, 3, 5 for i in range(5, n + 1): num = ((dp[i-1] + dp[i-2]) % 15746) dp[i] = num print(dp[n])
π μμ λ° μ€νκ²°κ³Ό
μμ
4
μ€νκ²°κ³Ό
5
β¨οΈ λ¬Έμ νμ΄
Nμ΄ 100λ§κΉμ§ λ€μ΄μ¬ μ μλ€. κ·Έλ¬λ―λ‘, DP 리μ€νΈμ ν¬κΈ°λ 1000001 μ΄ λμ΄μΌνλ€.
Nμ κ°μ΄ 3μΌ λκΉμ§ μ§μ κ³μ°μ ν΄λ³΄λ©΄ dp[3] κΉμ§μ κ°μ μλμ κ°λ€.
- 1, 2, 3
dp[i] = (dp[i-1] + dp[i-2]) % 15746
μμ κ°μ μ νμμ λ§λ€ μ μλ€.
πΎ λλμ
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°μ μ΄μ©ν΄ λ¬Έμ λ₯Ό νμ΄ν μ μλ λ¬Έμ μμ΅λλ€.
- λ€λ₯Έ DP λ¬Έμ μ λ€λ₯΄κ² μΉμ νκ³ , μ½κ³ μ¬λ―Έμμμ΅λλ€.
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 14500 ν νΈλ‘λ―Έλ Έ with Python (0) 2022.02.02 [λ°±μ€] 9933 λ―Όκ· μ΄μ λΉλ°λ²νΈ with Python (0) 2022.02.02 [λ°±μ€] 1094 λ§λκΈ° with Python (0) 2022.02.01 [λ°±μ€] 1058 μΉκ΅¬ with Python (0) 2022.02.01 [λ°±μ€] 1026 보물 with Python (0) 2022.01.31