53 라인 루프 안에서 3가지 문제가 있는 것 같습니다.
1번째.
63라인에서 pop_back를 하는데, 전체가 길이가 5 이고, l = 2 이면... 1, 2, 3, 4, 5 를 가진다고 하면
1, 2, 11, 4, 5 가 되고 1, 2, 4, 5, 11 이 된 후 pop_back 해서 1, 2, 4, 5 가 남습니다.
for 루프가 다시 시작되면 이제 길이는 4가 되고 l은 하나 증가 3이 되어서 '5'를 가리킵니다.
즉, '4'에 대해서는 처리가 skip 됩니다.
2번째.
1, 2, 4, 5, 6 의 나무가 있을 때 양분은 6이라고 가정을 하면
1, 2는 양분이 있으니 l=2으로 for 진입하면
2, 3, 4, 5, 6 이 되고 양분은 3이 남죠. 4는 죽으면서 2의 양분을 남기면
5에 대해서 처리할 때 (1번째 경우를 해결했다고 하면..) 양분은 5가 된 상태여서 5인 나무가 안죽고 양분을 먹게 됩니다.
이것은 문제에서 의도한 바가 아니기 때문에 한번 나무들이 죽기 시작하면 뒤는 다 죽이거나
봄과 여름을 분리하거나 해야할 것 같습니다.
3번째
죽은 나무를 11이라고 했는데, 나무나이가 11보다 작다는 가정을 할 수 없을 것 같습니다.
결론은...
나무가 죽기 시작하면 loop 빠져나가서 다 죽이고, pop_back 하면서 양분을 만들어 버리는 것이 어떨까요?
그리고 정답을 맞추고 나시면 다른 분을 코드를 꼭 한번 보세요.
cleankid99 5년 전
안에 코드에 주석은 다 적어놓았어요
왜 1이 더 크게 나오는지 모르겠어요....
한번 디버깅 같이 해주실 수 있으실까요..??