BOJ/๐Ÿฅˆ

โ˜…DP Intermediate II - 2 Solvedโ˜…

metamong 2024. 5. 26.

โ˜… 10826 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 4 โ˜…

n=int(input())

def fibo(n):

    if n<2:return n

    a,b=0,1    
    for _ in range(2,n+1):
        a,b=b,a+b
    return b

print(fibo(n))

 

๐ŸŽ‹ ์ „ํ˜•์ ์ธ DP ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์ด ๋•Œ, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ๋‘ ๋ณ€์ˆ˜ a, b๋งŒ ์„ค์ •ํ•˜๊ณ  a+b๋Š” ๊ธฐ์กด a์— ๋ฎ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ ๊ณ ๋ ค. ์ด ๋ถ€๋ถ„๋งŒ ์ฃผ์˜


โ˜… 10211 Maximum Subarray โ˜…

import sys
input=sys.stdin.readline

T=int(input())
for _ in range(T):
    N=int(input())
    arr=list(map(int,input().split()))
    if arr[0]<0:
        dp=(arr[0],arr[0])
    else:
        dp=(arr[0],0)
    for i in range(1,N):
        dp=(max(dp[0]+arr[i],arr[i]),max(dp))
    print(max(dp))

๐ŸŽ‹ DP ๊ธฐ๋ฒ• ์‚ฌ์šฉํ•  ๋•Œ, ํ•ด๋‹น ์›์†Œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋“ค์–ด๊ฐ€ ์žˆ์„ ๋•Œ์™€ ์•„๋‹ ๋•Œ ๋‘๊ฐ€์ง€ ์ผ€์ด์Šค๋กœ ๋‚˜๋ˆˆ๋‹ค. ๋ฐ˜๋“œ์‹œ ๋“ค์–ด๊ฐ€ ์žˆ์„ ๋•Œ๋Š” max(์•ž ์›์†Œ๊ฐ€ ํฌํ•จํ–ˆ์„ ๋•Œ + ํ•ด๋‹น ์›์†Œ, ํ•ด๋‹น์›์†Œ๋งŒ) ์ด๋ ‡๊ฒŒ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ๋“ค์–ด๊ฐ€ ์žˆ์ง€ ์•Š์„ ๋•Œ๋Š”, ์•ž ์›์†Œ dp ๋‘ ๊ฐœ์ค‘ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

๋Œ“๊ธ€