CodingTest/Python
BOJ_9095 : 1, 2, 3 λνκΈ°
Soom_1n
2022. 9. 3. 02:29
9095λ²: 1, 2, 3 λνκΈ°
κ° ν μ€νΈ μΌμ΄μ€λ§λ€, nμ 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μλ₯Ό μΆλ ₯νλ€.
www.acmicpc.net
πΈ λ¬Έμ λΆμ πΈ
- μ λ ₯λ°μ μλ₯Ό 1,2,3μΌλ‘ λ§λ€ μ μλ κ²½μ°μ μλ₯Ό μΆλ ₯νλ€.
- dpμ νκ· λ°©λ² λ κ°μ§λ‘ νμ΄ κ°λ₯νλ°, dpλ‘ νμ΄νλ€.
- 1,2,3 μ λ§λλ κ²½μ°μ μλ λ€μκ³Ό κ°λ€.
- (1) : 1 >> 1κ°
- (2) : 1+1 , 2 >> 2κ°
- (3) : 1+1+1, 1+2, 2+1, 3 >> 4κ°
- 1,2,3μ κΈ°λ³Έκ°μΌλ‘ μ μ₯ν΄λκ³ , 4λΆν° '1,2,3 λνκΈ° μ΄λ€ μ'μ κ²½μ°μ μλ₯Ό μκ°νλ€.
- 1+3 : 1 + (3μ νν ν μ μλ κ²½μ°μ μ) >> 1+(1+1+1), 1+(1+2), 1+(2+1), 1+(3)
- 2+2 : 2 + (2λ₯Ό νν ν μ μλ κ²½μ°μ μ) >> 2+(1+1) , 2+(2)
- 3+1 : 3 + (1μ νν ν μ μλ κ²½μ°μ μ) >> 3+(1)
- μ΄λ κ² λͺ¨λ μ‘°ν©μ΄ κ°λ₯νλ°, κ²°κ΅ μ νμμ dp[n] = dp[n-3] + dp[n-2] + dp[n-1] μ΄ λλ€ .
- 1,2,3 μ λ§λλ κ²½μ°μ μλ λ€μκ³Ό κ°λ€.
πΈ μ½λ πΈ
dp = [1,2,4]
for _ in range(int(input())):
t = int(input())
if len(dp) < t:
for _ in range(t - len(dp)):
dp.append(dp[-1] + dp[-2] + dp[-3])
print(dp[t-1])
πΈ μ½λ ν΄μ πΈ
- dp 리μ€νΈμ 1,2,3μ κ²½μ°μ μ 1,2,4λ₯Ό μ μ₯νλ€.
- μ λ ₯λ°μ μκ° dp리μ€νΈμ ν¬κΈ°λ³΄λ€ ν¬λ©΄(μ‘΄μ¬νμ§ μλ μΈλ±μ€λ©΄), μ°¨μ΄λ§νΌ λ°λ³΅λ¬Έμ λλ € 리μ€νΈλ₯Ό λλ¦°λ€.
- dp 리μ€νΈμμ μ λ ₯ μ μΈλ±μ€μ κ°μ μΆλ ₯νλ€.
πΈ end πΈ
- λ°λ³΅ κ·μΉμ λμΉμ±μ§λ§, μλ¦¬κ° μ΄ν΄λμ§ μμμ νμ΄ ν¬μ€ν
μ μ°Ύμ보μλ€.
- κ²½μ°μ μκ° λμ΄λλ μ리λ₯Ό κ°λ¨ν μ΄ν΄ν μ μμλ€.
- λ€λ₯Έ κΈμμ νκ·λ‘ μ리λ₯Ό μ€λͺ
ν κ±Έ λ΄€λλ°, κΈμ΄ κΈΈμ΄μ§κΉλ΄ μ€λͺ
νμ§ μμλ€.
- 0λΆν° 1, 2, 3μ λνκ³ , κ° κ°μμ λ€μ 1, 2, 3μ λν΄κ°λ©° μκ° κ³μ λμ΄λλ μ리λ€.
- dpλ¬Έμ λ₯Ό λ μ°μ΅ν΄μΌκ² λ€.
728x90