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

p.220 개미 전사 궁금한점..

Open youngsunshin94 opened this issue 5 years ago • 2 comments

안녕하세요. 자바를 사용하고 있는 독자입니다. i - 3번째 이하의 식량창고에 대해서는 고려할 필요가 없다고 하셨는데 입력을
4 3 1 1 5로 하면 8이 안나오고 6이 나옵니다. 8이 나와야 하는 문제 아닌가요?

youngsunshin94 avatar Oct 25 '20 08:10 youngsunshin94

저도 개미전사 관련 이슈(#74 )를 남긴 적이 있어서 질문하신 내용을 확인해봤습니다.

혹시 파이썬으로 실행해보셨나요? 파이썬 소스코드로 지금 실행해보니 말씀하신 값으로 입력하면, 출력은 정상적으로 8이 나옵니다.

$ python q02-ant-warrior.py
4
3 1 1 5
8

i - 3번째 이하의 식량창고에 대해서 고려할 필요가 없는 게 아니라, i - 2i - 1에는 지금까지 선택해온 최대 누적값이 저장되어 있기 때문에, i - 3은 고려할 필요가 없는 듯 합니다.

i == 4일 때, i - 2에는 두번째 값인 "1"을 취하지 않은, "3"이 들어있을 것이고, i - 1에는 첫번째("1"), 세번째("3") 값을 취하여 "4"가 들어있을 것입니다. i를 판별할 때는 i - 1 위치의 값인 "4"와 (i - 2) 위치의 값과 i 위치의 값을 더한 "8"을 비교합니다. "8"이 크니까 i 위치의 값은 8이 되고, 정답은 "8"이 출력됩니다. 아마 나동빈 님이 이 부분에 대해서는 다시 설명해주시지 않을까 싶습니다.

paikwiki avatar Oct 26 '20 09:10 paikwiki

답변 정말 감사합니다. 문제에 대한 의문이 풀렸습니다. 제가 d[1]을 arr[1]로 초기화를 해버려서 6이 나왔습니다. 해답과 문제에는 문제가 없었네요.. 오늘 다시 해보니까 8이 잘 나와서 제 눈을 의심했습니다. 다시 한번 정성껏 답변해주셔서 감사합니다.

youngsunshin94 avatar Oct 26 '20 12:10 youngsunshin94