5_hyun
2022. 6. 21. 23:03
반응형
교재 풀이
이렇게 바로 옆을 털면 지금 창고를 털지 못한다. 그리고 2번 떨어진 창고를 털면 지금 창고를 털 수 있다.
따라서 바로 옆 창고 vs (옆옆 창고 + 현재 창고) 이렇게 비교해서 더 큰 값을 찾아야 한다.
n = int(input())
ary = list(map(int, input().split()))
d = [0] * 100
d[0] = ary[0]
d[1] = max(ary[0], ary[1])
for i in range(2, n):
d[i] = max(d[i-1], d[i - 2] + ary[i])
print(d[n-1])
이런 풀이가 나온다. 위에서 설명했듯이 옆 창고 vs (옆옆 창고 + 현재 창고)를 비교하면서 푸는 문제이다.
이 문제를 다시 풀면서 for문 안에 max에서 (옆옆 창고 + 현재 창고)에서 현재 창고는 ary로 사용을 해야한다는 점을 주의해야 한다.
반응형