2019.02.21) 백준 2156번 풀이 (PyPy3)

2019. 2. 21. 20:20프로그래밍(주력)/백준 문제풀이

예전에 풀었던 계단 오르기의 하위호환인데 왜 차례는 더 아래라 그때 고생했을까...

매우 간단하게 풀었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
= list()
for i in range(int(input())):
    l.append(int(input()))
 
# dp를 위한 배열
= [(0, l[0], l[0])]
 
for i in range(1len(l)):
    r.append(
        (
            # 0번쨰 마시는 경우는 이번꺼 합 안하고 이전 경우중 가장 큰거로 저장
            max(r[i - 1]),
            # 1번째랑 2번째는 각각 0번쨰랑 1번쨰에서 지금 양 더해서 저장
            r[i-1][0+ l[i],
            r[i-1][1+ l[i]
        )
    )
 
# 결과
print(max(r[-1]))
cs