π€λ¬Έμ ν΄κ²°
-
S2 | DP
[python] λ°±μ€ - 11055. κ°μ₯ ν° μ¦κ° λΆλΆ μμ΄
π€λ¬Έμ ν΄κ²° S2 | λ€μ΄λλ―Ήνλ‘κ·Έλλ° μμ μ΄λ° λ¬Έμ λ DPλ¬Έμ μ΄λ€. dp 리μ€νΈλ₯Ό λ§λ λ€.(1μ°¨μ, μΈνκ°μΌλ‘ λ°μ μμ΄κ³Ό λκ°μ κ°μΌλ‘ λ§λ λ€.) μμ΄μμ μμ λ³΄λ€ μ μͺ½μ μλ κ° μ€μμ μμ
deok2kim.tistory.com
μμ λ¬Έμ μ μ΄μ§ λΉμ·ν λλμ΄λ€.
- κ°μ΄ 1λ‘ μ ν λ κΈΈμ΄κ° n μΈ dp 리μ€νΈλ₯Ό λ§λ λ€. dp = [1, 1, 1, ... ]
- κ°κ°μ κ°μ νμ¬ ν¬ν¨ν μμμ κ°―μμ΄λ€.
- 맨μμ μμλΆν° νλμ© λ€λ‘κ°λ©° μμ μμλ₯Ό λͺκ°λ λ΄μ μ μλ μ§ μ²΄ν¬νλ€.
- λ§μ½ λ΄μμ μμκ° λλ³΄λ€ μκ³ κ·Έ μμκ° λ΄κ³ μλ μμμ κ°―μ(λ³ΈμΈν¬ν¨)κ° 5κ°λΌλ©΄
μ§κΈ λμ μμλ μμ μμκΉμ§ λ΄μ μ μμΌλ―λ‘ 6μ΄ λλ€.
π»μμ€ μ½λ
n = int(input())
boxes = list(map(int, input().split()))
dp = [1] * n
for i in range(1, n):
tmp = 0
for j in range(i - 1, -1, -1):
if boxes[j] < boxes[i]:
tmp = max(dp[j], tmp)
dp[i] += tmp
print(max(dp))
πλ¬Έμ νμΈ
μΆμ²: BACKJOON ONLINE JUDGE
λ§ν¬: https://www.acmicpc.net/problem/1965
1965λ²: μμλ£κΈ°
μ μ‘면체 λͺ¨μμ μμκ° μΌλ ¬λ‘ λμ΄μ μλ€. μμλ§λ€ ν¬κΈ°κ° μ£Όμ΄μ Έ μλλ°, μμ μλ μμμ ν¬κΈ°κ° λ€μ μλ μμμ ν¬κΈ°λ³΄λ€ μμΌλ©΄, μμ μλ μμλ₯Ό λ€μ μλ μμ μμ λ£μ μκ° οΏ½οΏ½
www.acmicpc.net
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] λ°±μ€ - 2110. 곡μ κΈ° μ€μΉ (4) | 2020.10.16 |
---|---|
[python] λ°±μ€ - 1735. λΆμ ν© (0) | 2020.10.15 |
[python] λ°±μ€ - 2504. κ΄νΈμ κ° (0) | 2020.10.13 |
[python] λ°±μ€ - 1890. μ ν (0) | 2020.10.12 |
[python] λ°±μ€ - 1780. μ’ μ΄μ κ°μ (0) | 2020.10.11 |