Post

๐Ÿข ์—ฐ์†ํ•ฉ 2

1. ๋ฌธ์ œ ๋งํฌ

13398๋ฒˆ: ์—ฐ์†ํ•ฉ 2


2. ์ฝ”๋“œ

Python3 38828KB 6168ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
[13398] ์—ฐ์†ํ•ฉ 2

๐Ÿ’› ๋ฌธ์ œ
n๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ž„์˜์˜ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค.
์šฐ๋ฆฌ๋Š” ์ด ์ค‘ ์—ฐ์†๋œ ๋ช‡ ๊ฐœ์˜ ์ˆ˜๋ฅผ ์„ ํƒํ•ด์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•ฉ ์ค‘ ๊ฐ€์žฅ ํฐ ํ•ฉ์„ ๊ตฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
๋‹จ, ์ˆ˜๋Š” ํ•œ ๊ฐœ ์ด์ƒ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค. ๋˜, ์ˆ˜์—ด์—์„œ ์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. (์ œ๊ฑฐํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค)

์˜ˆ๋ฅผ ๋“ค์–ด์„œ 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 ์ด๋ผ๋Š” ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ๋‹ค๊ณ  ํ•˜์ž.
์—ฌ๊ธฐ์„œ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š์•˜์„ ๋•Œ์˜ ์ •๋‹ต์€ 12+21์ธ 33์ด ์ •๋‹ต์ด ๋œ๋‹ค.

๋งŒ์•ฝ, -35๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด, ์ˆ˜์—ด์€ 10, -4, 3, 1, 5, 6, 12, 21, -1์ด ๋˜๊ณ ,
์—ฌ๊ธฐ์„œ ์ •๋‹ต์€ 10-4+3+1+5+6+12+21์ธ 54๊ฐ€ ๋œ๋‹ค.

๐Ÿ’š ์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ์ •์ˆ˜ n(1 โ‰ค n โ‰ค 100,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค.
์ˆ˜๋Š” -1,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

๐Ÿ’™ ์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค.
"""

# n ๊ฐœ์˜ ์ •์ˆ˜
n = int(input())
# n ๊ฐœ๋กœ ์ด๋ค„์ง„ ์ˆ˜์—ด
array = list(map(int, input().split()))

# dp 2์ฐจ์› ๋ฐฐ์—ด์— ์ œ๊ฑฐ, ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ
dp = [ [0] * (n + 1) for _ in range(2)]

# ์ œ๊ฑฐํ•˜์ง€ ์•Š์€ dp
dp[0][0] = array[0]
# ์ฒซ ์‹œ์ž‘
answer = array[0]

# ์ˆ˜์—ด์—์„œ ์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. (์ œ๊ฑฐํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค)
for i in range(1, n) :
    # ์ตœ๋Œ€๊ฐ’ (๊ทธ ์ „ + ํ˜„์žฌ , ํ˜„์žฌ)
    dp[0][i] = max(dp[0][i - 1] + array[i], array[i])
    # ์ตœ๋Œ€๊ฐ’ (ํ˜„์žฌ ์ œ๊ฑฐ, ์ด์ „ ์ œ๊ฑฐ + ํ˜„์žฌ)
    dp[1][i] = max(dp[0][i - 1], dp[1][i - 1] + array[i])
    # ์ œ๊ฑฐx, ์ œ๊ฑฐ0, ์ฒ˜์Œ์—๋Š” ์ฒซ ์ˆซ์ž (๊ทธํ›„์— ๊ฐฑ์‹ )
    answer = max(dp[0][i], dp[1][i], answer)

print(answer)


3. ํ•ด์„ค

  • dp 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์„œ ์ œ๊ฑฐ, ์ œ๊ฑฐํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋“ฆ
    • ๊ทธ ์ „ + ํ˜„์žฌ, ํ˜„์žฌ
    • ํ˜„์žฌ ์ œ๊ฑฐ, ๊ทธ ์ „ ์ œ๊ฑฐ + ํ˜„์žฌ
    • ๊ฐฑ์‹ ํ•œ๋‹ค
This post is licensed under CC BY 4.0 by the author.