python-for-coding-test icon indicating copy to clipboard operation
python-for-coding-test copied to clipboard

개미전사

Open pigpiano opened this issue 3 years ago • 1 comments

안녕하세요. 공부하는데 궁금한게 생겨 질문 드립니다. 코린이라 질문 수준이 낮아도 양해 부탁드립니다. 코드를 보면

for i in range(2, n): 여기서 범위가 왜 (2,n+1)이 아니고 (2,n)인지 모르겠습니다. 2부터 시작하는건 알겠는데 n범위까지가 이해가 가지 않습니다.

정수 N을 입력 받기

n = int(input())

모든 식량 정보 입력 받기

array = list(map(int, input().split()))

앞서 계산된 결과를 저장하기 위한 DP 테이블 초기화

d = [0] * 100

다이나믹 프로그래밍(Dynamic Programming) 진행 (보텀업)

d[0] = array[0] d[1] = max(array[0], array[1]) for i in range(2, n): d[i] = max(d[i - 1], d[i - 2] + array[i])

계산된 결과 출력

print(d[n - 1])

pigpiano avatar Jun 28 '21 12:06 pigpiano

이미 해결하셨겠지만 n+1로 했을 경우에는 index 값에서 벗어나기 때문에 n+1이 아닌 n으로 한 것으로 생각됩니다!

HA-SEUNG-JEONG avatar Oct 30 '21 07:10 HA-SEUNG-JEONG