λ°μν
π€λ¬Έμ ν΄κ²°
-
D3 | DP
π¨ [python] λ°±μ€ - 11055. κ°μ₯ ν° μ¦κ° λΆλΆ μμ΄
π¨ κ° μ«μλ§λ€ μ΄μ μ μ«μμ λΉκ΅νλ©΄μ μ μ κΈΈμ΄λ₯Ό λλ € λκ°λ€.
π»μμ€ μ½λ
# μ
λ ₯
T = int(input())
Ns = []
for tc in range(T):
N = int(input())
numbers = list(map(int, input().split()))
Ns.append((N, numbers))
# νμ΄ - DP
results = []
for tc in range(T):
N, numbers = Ns[tc]
# λλ²μ§Έ λΆν° λκΉμ§
# μμ μ μμͺ½μ μ«μλ€μ νμ
# νμ¬ μμ μ΄ λͺκ°μ μ°μλ μ¦κ°νλ λΆλΆ μμ΄μΈμ§ 체ν¬
# μ΄κΈ°ν: μμ νΌμ μ΄λ―λ‘ 1λ‘ μ΄κΈ°ν
dp = [0] * N
dp[0] = 1
for i in range(1, N):
for j in range(i - 1, -1, -1):
# λ§μ½ i μ μ«μλ³΄λ€ j μ μ«μκ° μμΌλ©΄ μ¦κ°νλ μμ΄μ
if numbers[i] > numbers[j]:
dp[i] = max(dp[i], dp[j])
dp[i] += 1
results.append(max(dp))
# μΆλ ₯
for tc in range(T):
print(f'#{tc + 1} {results[tc]}')
πλ¬Έμ νμΈ
μΆμ²: SW Expert Academy
λ°μν
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] SWEA - 3408. μΈκ°μ§ ν© κ΅¬νκΈ° (0) | 2020.12.21 |
---|---|
[python] SWEA - 3376. νλλ° μμ΄ (0) | 2020.12.20 |
[python] SWEA - 3304. μ΅μ₯ κ³΅ν΅ λΆλΆ μμ΄ (0) | 2020.12.18 |
[python] SWEA - 3282. 0/1 Knapsack (0) | 2020.12.17 |
[python] SWEA - 3975. μΉλ₯ λΉκ΅νκΈ° (0) | 2020.12.16 |