์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค - ๊ฐœ๋ฏธ์ „์‚ฌ

2020. 9. 9. 20:49ใ†์ด๊ฒƒ์ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค/๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

1 3 1 5

 

1

1 1

1 5

3

3 5

1

5

 

 

์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ฐ”๋กœ ์ ํ™”์‹์„ ์„ธ์›Œ์•ผ๊ฒ ๋‹ค๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฑธ๊นŒ?

์ ํ™”์‹์€ ์ฐธ ์‹ ๊ธฐํ•˜๋‹ค. ํ•ญ๋“ค์˜ ๊ด€๊ณ„๋กœ ๋‹ต์„ ํ’€์–ด๊ฐ„๋‹ค๋Š” ๊ฒŒ ์ฐธ ๋‚˜์—๊ฒŒ๋Š” ์•„์ง ์–ด๋ ต๋‹ค.

๊ทธ๋Ÿผ์—๋„ ํ•œ๋ฒˆ ๋” ํ’€์–ด๋ณธ๋‹ค.

์ด ๋ฌธ์ œ์—์„œ๋Š” i๋ฒˆ์งธ๋ฅผ ๊ณจ๋ž์„ ๋•Œ i-2๋ฒˆ์งธ์˜ ๊ฐ’๊ณผ ๋”ํ•œ ๊ฐ’๊ณผ i-1๋ฒˆ์งธ ๊ฐ’ ํ•˜๋‚˜๋งŒ ๊ณจ๋ž์„ ๋•Œ ์ด ๋‘˜์ค‘์— ํฐ ๊ฒƒ์ด d[i]์˜ ๊ฐ’์ด ๋˜๊ฒŒ ํ’€์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ์ ํ™”์‹์˜ ํ•ต์‹ฌ์€ ์ด๋ ‡๋‹ค. ๊ฐ€์ •์„ ์ตœ์†Œํ•œ์œผ๋กœ ๋งŒ๋“ค์–ด์„œ 3๊ฐ€์ง€ ๊ฐ€์ •์„ ๋งŒ๋“  ํ›„์— ์ผ์ผํžˆ ๋Œ€์ž…ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด 4๋ฒˆ์จฐ ๊ฐ€์ •์„ ๊ณต์‹์— ๋Œ€์ž…ํ–ˆ์„ ๋•Œ ํ’€๋ฆฌ๋ฉด ์ ํ™”์‹์ด๋‹ค. ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋‹ต์ด ๋„์ถœ์•ˆ๋  ๋•Œ ์ด๋ ‡๊ฒŒ ํ’€์ดํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด์•ผํ•œ๋‹ค. 

 

i๋ฒˆ์งธ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’์„ d[i]์— ์ €์žฅํ•˜๋Š” ๊ฒƒ ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค.

 

3๋ฒˆ์งธ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

์šฐ์„  1๋ฒˆ์งธ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’์€ 1์ด ๋“ค์–ด๊ฐ„๋‹ค. 

2๋ฒˆ์งธ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’์€ 1๊ณผ 3 ๋‘˜์ค‘ ํฐ๊ฒƒ์ด๋‹ˆ 3์ด ๋“ค์–ด๊ฐ„๋‹ค.

3๋ฒˆ์งธ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’์€ 1+1๊ณผ 3 ๋‘˜์ค‘ ํฐ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด 4๋ฒˆ์งธ๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’์€? ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค d[3]๊ณผ d[2]+array[4]์˜ ๊ฐ’์„ ๋น„๊ตํ•ด๋ณด๋ฉด ๋œ๋‹ค.

์ ์  ์ตœ๋Œ€๊ฐ’์ด ์ปค์ง€๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ธฐ ๋•Œ๋ฌธ์— i-1๋ฒˆ์จฐ์™€ i-2๋ฒˆ์จฐ + i๋ฒˆ์งธ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์—ฐ์Šตํ•˜์ž..

 

 

์†Œ์Šค ์ฝ”๋“œ๋Š” ์ด๋ ‡๋‹ค.

 

n = int(input())
array= list(map(int,input().split()))

d = [0]*100

d[0] = array[0]
d[1] = max(array[0], array[1])
for i in range(2,n):
  d[i] = max(d[i-1], d[i-2] + array[i])

print(d[n-1])