๐Ÿ‘ฉโ€๐ŸŽ“๊ณต๋ถ€ - 2024.02.06 ์†Œ๋งˆ๋Œ€๋น„ ๋ฌธ์ œํ’€์ด

์œ ๋ น๊ฐœยท2024๋…„ 2์›” 6์ผ
0

PS-์•Œ๊ณ ๋ฆฌ์ฆ˜2

๋ชฉ๋ก ๋ณด๊ธฐ
27/34
post-thumbnail

17216๋ฒˆ - ๊ฐ€์žฅ ํฐ ๊ฐ์†Œ ๋ถ€๋ถ„ ์ˆ˜์—ด

๊ฐ€์žฅ ํฐ ๊ฐ์†Œํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

import copy 
N = int(input())
lst = list(map(int,input().split()))
dp = copy.deepcopy(lst)

ํ•ฉ์˜ ์ตœ์†Œ๋Š” ์ž๊ธฐ ์ž์‹ ์ด๋ฏ€๋กœ dp๊ฐ’์€ ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์Šค์™€ ๋˜‘๊ฐ™์ด ์ดˆ๊ธฐํ™”ํ•ด์ค๋‹ˆ๋‹ค.

for i in range(len(lst)):
    for j in range(i):
        if lst[i] < lst[j]:
            dp[i] = max(dp[i],dp[j]+lst[i])

๊ฐ ์ธ๋ฑ์Šค๋งˆ๋‹ค ์ˆœํšŒ๋ฅผ ๋Œ๋ฉฐ ์ž๊ธฐ ์ž์‹ ๋ณด๋‹ค ํฐ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•˜๋ฉด ์ž๊ธฐ ์ž์‹ ์˜ dp๊ฐ’๊ณผ ์ž๊ธฐ์ž์‹ +ํฐ ์ธ๋ฑ์Šค์˜ dp๊ฐ’ ์„ ๋Œ€์กฐํ•˜์—ฌ ๋” ํฐ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋„๋ก ํ•ฉ์‹œ๋‹ค.

print(max(dp))   

ํ•ด๋‹น dp๊ฐ’์—์„œ ์ œ์ผ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


profile
ํ•œ๋ฆผ๋Œ€ํ•™๊ต ์ •๋ณด๊ณผํ•™๋Œ€ 2ํ•™๋…„ ์žฌํ•™์ค‘ / ์œก๊ตฐ ์ •๋ณด๋ณดํ˜ธ๋ณ‘ 22-2๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€