11722λ²: κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄
μμ΄ Aκ° μ£Όμ΄μ‘μ λ, κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€. μλ₯Ό λ€μ΄, μμ΄ A = {10, 30, 10, 20, 20, 10} μΈ κ²½μ°μ κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄μ A = {10, 30, 10, 20, 20, 10}
www.acmicpc.net
μ€λͺ
λΆλΆ μμ΄μ μ΅λ κΈΈμ΄λ₯Ό ꡬν΄μΌ νλ λ¬Έμ μ΄λ€. λΆλΆ μμ΄μ΄λ μ£Όμ΄μ§ μμ΄μ μΌλΆ νμ μλ μμλλ‘ λμ΄νμ¬ μ»μ μ μλ μμ΄μ΄λ€. μ½κ² λ§ν΄μ μ΄μ μλ³΄λ€ μμΌλ©΄ μμ΄μ΄ μ΄λ£¨μ΄μ§λ€. νν μνμμ 보μλ λ νμ μ°¨μ΄κ° μΌμ ν λ±μ°¨μμ΄μ λ§νλ κ²μ΄ μλλ€.
μλ₯Ό λ€μ΄, A : { 10, 30, 10, 20, 20, 10 } μ΄λΌλ μμ΄μ΄ μμ λ, λΆλΆ μμ΄μ A : { 10, 30, 10, 20, 20, 10 } μ΄κ³ , μ΅λ κΈΈμ΄λ 3μ΄λ€.
νμ΄
κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄ λ¬Έμ μ κ°μ λ¬Έμ μ΄λ€.
νμ΄ β https://dev-cloud.tistory.com/198
λ°λ³΅λ¬Έμ λλ €μ£Όλ©΄μ νμ¬ κ°(i)μ΄ μ΄μ κ°(j)λ³΄λ€ μμΌλ©΄, dpμμμ νμ¬ μμΉ(i)μ μ΄μ μμΉ(j)μμ +1μ ν΄μ€ μΉ΄μ΄νΈ κ°κ³Ό λΉκ΅νμ¬ λ ν° μΉ΄μ΄νΈ κ°μ νμ¬ μμΉ(i)μ μ μ₯ν΄μ€λ€.
μ΄λ κ² νλ©΄ μ§κΈκ» μΉ΄μ΄νΈ νλ κ° μ€ ν° κ°μ μ μ₯νλ©΄μ μμ΄μ μ΅λκ°μ μ μ μλ κ²μ΄λ€.
μ΅μ’ μΌλ‘ κ²°κ³Όλ₯Ό μΆλ ₯ν λ dpμ μ μ₯λμ΄ μλ κ°μμ μ΅λκ°μ μΆλ ₯νλ€.

Solution
#22:20 - 22:50
import sys
input = sys.stdin.readline
N = int(input())
dp = [1]*N
num = list(map(int, input().split()))
for i in range(N):
for j in range(i):
if num[i] < num[j]:
dp[i] = max(dp[i], dp[j]+1)
print(max(dp))
π©π» νκ³
μ΄λ² λ¬Έμ μμλ, μμ μλ₯Ό μ°Ύμμ μΉ΄μ΄νΈ 리μ€νΈμ νμ¬ μΈλ±μ€μ μ΄μ μΈλ±μ€ μ€ μ΅λκ°μ νμ¬ μΈλ±μ€μ λ€μ μ μ₯νλ λ°©μμΌλ‘ νμλ€.
κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄ λ¬Έμ λ₯Ό μ΅κ·Όμ νμλλ°λ νλ²μ ꡬννμ§ λͺ»νλ€. μμ§ dp λ¬Έμ λ₯Ό μ΄λ»κ² νμ΄μΌ ν μ§ κ°μ΄ μ‘νμ§ μμ κ² κ°λ€.
'π§© Algorithm > [BOJ] Silver' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| BOJ 11728λ² : λ°°μ΄ ν©μΉκΈ° (Python/Two-Pointer/Silver 5) (4) | 2023.11.09 |
|---|---|
| BOJ 10814λ² : λμ΄μ μ λ ¬ (Python/μλ£κ΅¬μ‘°/Silver 5) (1) | 2023.10.31 |
| BOJ 9461λ² : νλλ° μμ΄ (Python/Silver 3) (0) | 2023.10.26 |
| BOJ 11053λ² : κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆ μμ΄ (Python/Silver 2) (2) | 2023.10.22 |
| BOJ 2312λ² : μ 볡μνκΈ° (Python/Silver 3) (0) | 2023.09.24 |