728x90
반응형
n = int(input())
data = list(map(int,input().split()))

result = [0]*n
result[0] = data[0]

tmp=data[0]
for i in range(1,n):
  tmp= tmp+data[i]

  if tmp<0:
    tmp = 0 
  
  result[i]=tmp 


if max(data)<0 :
  print(max(data))
else:
  print(max(result))
728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 10844 쉬운 계단 수  (0) 2020.09.11
# 11053 가장 긴 증가하는 부분수열 (개념)  (0) 2020.09.11
# 2748 피보나치 수2  (0) 2020.09.11
# 2156 포도주 시식  (0) 2020.09.11
# 2193 이친수  (0) 2020.09.11
728x90
반응형

# 런타임 에러

n = int(input()) # n <= 90

f = [0] 
f.append(1)
# f[n] = f[n-1] + f[n-2]

for i in range(2,n+1):
  f.append(f[i-1]+f[i-2])

print(f[n])

 

# 정답

n = int(input())
now = 0
next = 1
tmp = 0
for i in range(n):
    tmp = now
    now = next
    next = tmp + next 
print(now)

 

 

이유..? 

728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 11053 가장 긴 증가하는 부분수열 (개념)  (0) 2020.09.11
# 1912 연속합  (0) 2020.09.11
# 2156 포도주 시식  (0) 2020.09.11
# 2193 이친수  (0) 2020.09.11
# 1932 정수 삼각형  (0) 2020.09.11
728x90
반응형
n = int(input()) # 1<= n <= 10000

data=[0]
for i in range(n):
  data.append(int(input()))

many = [ 0 ]
many.append(data[1])
if n > 1 : 
  many.append(data[1]+data[2])

  for i in range(3,n+1):
    many.append( max(many[i-1],many[i-2]+data[i], many[i-3]+data[i-1]+data[i] ) )

print(many[n])

 

728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 1912 연속합  (0) 2020.09.11
# 2748 피보나치 수2  (0) 2020.09.11
# 2193 이친수  (0) 2020.09.11
# 1932 정수 삼각형  (0) 2020.09.11
# 2579 계단 오르기  (0) 2020.09.11
728x90
반응형
n = int(input())
# n 자리 이친수를 구하자 

data=[ [0,0] for _ in range(91)]

data[1][1]=1 # 1 
data[2][0]=1 # 10 

# 0 으로 끝나면 뒤에 2개가 올수 있고 
# 1 로 끝나면 뒤에 1개만 가능.

for i in range(3,n+1):
  data[i][0] = data[i-1][1]+data[i-1][0]
  data[i][1] = data[i-1][0]

print(data[n][0] + data[n][1])
728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 2748 피보나치 수2  (0) 2020.09.11
# 2156 포도주 시식  (0) 2020.09.11
# 1932 정수 삼각형  (0) 2020.09.11
# 2579 계단 오르기  (0) 2020.09.11
# 1149 RGB 거리  (0) 2020.09.11
728x90
반응형
n = int(input()) # 1<= n <= 500

data=[]
for i in range(n):
  data.append(list(map(int, input().split())))

for i in range(n-1):
  for j in range(len(data[i+1])):
    if ( j==0 ):
      data[i+1][j] += data[i][j]
    elif ( j == len(data[i+1])-1 ):
      data[i+1][j] += data[i][-1]
    else :
      data[i+1][j] += max( data[i][j-1] , data[i][j] )

print(max(data[n-1]))
728x90
반응형

'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글

# 2156 포도주 시식  (0) 2020.09.11
# 2193 이친수  (0) 2020.09.11
# 2579 계단 오르기  (0) 2020.09.11
# 1149 RGB 거리  (0) 2020.09.11
# 11726 2xn 타일링  (0) 2020.09.11

+ Recent posts