๋ฐ์ํ
๋ฌธ์
์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ ์์ด์ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ์ค์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์๋ฅผ ๋ค์ด, ์์ด A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} ์ธ ๊ฒฝ์ฐ์ ํฉ์ด ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ A = {1, 100,2,50,60, 3, 5, 6, 7, 8} ์ด๊ณ , ํฉ์ 113์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ด A์ ํฌ๊ธฐ N (1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค์๋ ์์ด A๋ฅผ ์ด๋ฃจ๊ณ ์๋ Ai๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ Ai≤ 1,000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์์ด A์ ํฉ์ด ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ํฉ์ ์ถ๋ ฅํ๋ค.
ํ์ด
# input
n = int(input())
a = list(map(int, input().split()))
# dp
dp = a[:]
for i in range(n):
for j in range(i):
if a[j] < a[i] and dp[i] < dp[j] + a[i]:
dp[i] = dp[j] + a[i]
# ouput
print(max(dp))
๋ฐ์ํ
'๐ ํ์ด์ฌ ์์ด์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][Python] ๋ฐฑ์ค 16953๋ฒ: A โ B (Silver II) (0) | 2024.11.01 |
---|---|
[BOJ][Python] ๋ฐฑ์ค 28701๋ฒ: ์ธ์ ๊ณฑ์ ํฉ (Bronze V) (0) | 2024.11.01 |
[BOJ][Python] ๋ฐฑ์ค 1094๋ฒ: ๋ง๋๊ธฐ (Silver V) (0) | 2024.10.25 |
[BOJ][Python] ๋ฐฑ์ค 11057๋ฒ: ์ค๋ฅด๋ง ์ (Silver I) (0) | 2024.10.25 |
[BOJ][Python] ๋ฐฑ์ค 10815๋ฒ: ์ซ์ ์นด๋ (0) | 2024.10.22 |