๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
S2 | ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
์ญ์ ์ด๋ฐ ๋ฌธ์ ๋ DP๋ฌธ์ ์ด๋ค.
- dp ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค.(1์ฐจ์, ์ธํ๊ฐ์ผ๋ก ๋ฐ์ ์์ด๊ณผ ๋๊ฐ์ ๊ฐ์ผ๋ก ๋ง๋ ๋ค.)
- ์์ด์์ ์์ ๋ณด๋ค ์ ์ชฝ์ ์๋ ๊ฐ ์ค์์ ์์ ๋ณด๋ค ์์ ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๋ค.
- ํด๋น ์ธ๋ฑ์ค์ dp๊ฐ์ค ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ ์์ ์ ๊ฐ์ ๋ํด dp๋ฅผ ๋ค์ ์ฑ์ด๋ค.
- dp์์ max๊ฐ์ ์ถ๋ ฅ
๐ป์์ค ์ฝ๋
N = int(input())
numbers = list(map(int, input().split()))
dp = numbers[:]
dp[0] = numbers[0]
# print(f'์ต์ดDP: {dp}')
for i in range(1, N):
for j in range(i):
if numbers[j] < numbers[i]:
dp[i] = max(dp[i], dp[j] + numbers[i])
# print(f'i: {i},j: {j}, DP: {dp}')
# print(dp)
print(max(dp))
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/11055
๋ฐ์ํ
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 11729. ํ๋ ธ์ด ํ ์ด๋ ์์ (0) | 2020.10.06 |
---|---|
[python] ๋ฐฑ์ค - 1182. ๋ถ๋ถ์์ด์ ํฉ (0) | 2020.10.05 |
[python] ๋ฐฑ์ค - 11722. ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด (0) | 2020.10.03 |
[python] ๋ฐฑ์ค - 7562. ๋์ดํธ์ ์ด๋ (0) | 2020.10.02 |
[python] ๋ฐฑ์ค - 4948. ๋ฒ ๋ฅดํธ๋ ๊ณต์ค (0) | 2020.10.01 |