작성
·
187
0
답변 2
0
안녕하세요 ㅎㅎ
이렇게 이해를 하시면 됩니다.
psum[i] = i번째까지의 모든 합
psum[i - k] = i - k번째 까지의 모든 합
입니다.
자 여기서
psum[i] - psum[i - k] 를 하게 되면 i번째부터 i - k번째까지의 부분합이 되는 것이죠.
그림으로 그려보면 다음과 같이 됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
jhyunkuk님의 질문은 2559 수열 문제와 관련된 특정 부분의 이해도를 높이기 위한 도움을 요청하는 내용으로 보입니다. 질문에서 언급된 코드
for(int i=k; i<n; i++){
ret = max(ret, psum[i] - psum[i - k];
}
는 누적합을 활용해 특정 구간의 합을 효율적으로 계산하기 위한 로직입니다. 여기서 psum
배열은 인덱스 0부터 i까지의 원소 합을 저장하고 있으며, ret
은 구간 합의 최대값을 갱신하기 위해 사용되는 변수입니다.
유사한 질문과 답변이 위의 지식공유자가 제공한 질문들 중에서 발견되었습니다. 특히 1-H 문제 질문 (https://www.inflearn.com/questions/770808)에 대한 답변이 유사한 내용을 다루고 있으며, 다음과 같이 설명되고 있습니다:
지식공유자는 psum[i]
가 1부터 i번째 요소까지의 합을 의미하며, 여기서 psum[i-k]
를 빼면 (i-k+1)부터 i번째 요소까지의 합을 구할 수 있다고 설명합니다. 이를 통해 주어진 구간의 합을 최대한 빠르게 계산할 수 있습니다.
그래픽적인 설명에 대한 요청이 있으신만큼 시각적인 설명이 포함된 유사한 답변을 찾기 어려울 경우, 이 문제에 대한 더 자세한 세부 사항을 요청해야 할 수도 있습니다.
본 AI가 제공할 수 있는 가장 관련된 정보를 바탕으로, 질문자님이 요청하신 조건에 부합하는 답변이 다음과 같이 추천됩니다:
이러한 기존 답변들은 psum
배열과 연속된 구간의 합을 계산하는 과정에 대한 설명을 담고 있어, jhyunkuk님의 질문에 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.