N=int(input())wine=[0for_inrange(N)]total=[0for_inrange(N)]foriinrange(N):wine[i]=int(input())ifN==1:total[0]=wine[0]else:total[0]=wine[0]total[1]=wine[0]+wine[1]foriinrange(2,N):total[i]=max(total[i-1],total[i-2]+wine[i],total[i-3]+wine[i]+wine[i-1])print(total[N-1])# N == 1인 경우를 생각하지 않았을 땐 런타임 오류에 걸렸었다.# 그리고 그걸 생각하는데 오래 걸렸다.
2565_전깃줄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
n=int(input())line=[list(map(int,input().split()))for_inrange(n)]line.sort(key=lambdax:x[0])# 앞 숫자 기준, 오름차순 정리arr=[0]*501fors,einline:arr[e]=max(arr[:e])+1print(n-max(arr))# dp를 활용해 e에 겹쳐지지 않은 줄의 수를 기록# s는 오름차순으로 정렬해 검증함으로 겹쳐지는 것을# 신경 쓰지 않아도 ok