0Pricing
Coding Interview Prep · 강의

구간 갱신을 위한 차분 배열

구간에 더하는 연산을 빠르게 여러 번 적용합니다

구간 갱신을 위한 차분 배열은(는) CoddyKit의 무료 Coding Interview Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Coding Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

문제를 뒤집어 생각하기

누적 합은 구간 질의를 빠르게 처리했습니다. 차분 배열은 반대로 여러 구간 갱신을 빠르게 적용하게 해 줍니다. 🔁

느린 방법

구간의 모든 원소에 값을 더하는 작업을 여러 번 반복하면 갱신 한 번마다 O(n)이 걸립니다. q번 갱신을 수행하면 전체 비용이 급격히 커집니다.

변경 사항만 저장하기

모든 칸을 직접 수정하는 대신 변경이 시작되는 위치와 끝나는 위치만 기록하십시오. 가운데가 아니라 양 끝을 표시하는 것입니다.

차분 배열에 저장되는 것

차분 배열은 각 원소와 바로 앞 원소의 차이를 저장합니다. 차이 하나를 수정하면 그 뒤의 전체 구간이 바뀝니다.

두 곳만 표시하는 방법

l부터 r까지 v를 더하려면 인덱스 l에 v를 더하고 인덱스 r + 1에 v를 빼십시오. 두 번의 수정만으로 전체 구간을 처리할 수 있습니다.

diff[l] += v
diff[r + 1] -= v

빼는 이유

l에서 더한 값은 변경을 시작하고, r + 1에서 뺀 값은 변경을 다시 끕니다. 두 표시가 함께 갱신을 하나의 구간 안에 가둡니다.

모든 갱신을 저렴하게 적용하기

각 갱신은 배열에 두 번 쓰기만 하면 되므로 q번 갱신의 전체 비용은 O(q)입니다. 실제 계산은 마지막으로 미뤄집니다.

최종 배열 복원하기

모든 표시를 마친 뒤 차분 배열에 누적 합을 적용하십시오. 한 번의 순회로 모든 최종 값을 복원할 수 있습니다.

for i in range(1, n):
    diff[i] += diff[i - 1]

보호용 칸을 추가해 크기 정하기

배열을 한 칸 더 길게 만들어 r + 1이 끝을 벗어나지 않도록 하십시오. 여분의 보호용 칸이 인덱스 오류를 방지합니다.

전체 비용

갱신을 표시하는 데 O(q), 배열을 다시 만드는 데 O(n) 한 번의 순회가 필요합니다. 두 작업을 합친 비용은 단순한 O(n × q)보다 훨씬 작습니다.

효과적인 경우

차분 배열은 예약 수, 도로 통행료처럼 구간 더하기 작업이 많고 마지막에 한 번만 결과를 읽는 문제에서 특히 유용합니다.

빠른 확인

인덱스 l부터 r까지의 모든 원소에 v를 더합니다.

정리

차분 배열을 사용하면 구간 갱신을 모아서 처리할 수 있습니다. l과 r + 1을 표시한 다음 누적 합을 한 번 적용해 배열을 복원하십시오. 빠른 갱신과 한 번의 결과 조회가 가능합니다. ✅

자주 묻는 질문

“구간 갱신을 위한 차분 배열” 강의는 무료인가요?

네 — “구간 갱신을 위한 차분 배열” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Coding Interview Prep 강의 전체를 잠금 해제할 수 있습니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“구간 갱신을 위한 차분 배열”에서 뭘 배우나요?

구간에 더하는 연산을 빠르게 여러 번 적용합니다 브라우저에서 직접 실행하는 실습 코드로 Coding Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Coding Interview Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Coding Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“구간 갱신을 위한 차분 배열” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Coding Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Coding Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 누적 합 배열 만들기
  2. 뺄셈으로 모든 구간 합 구하기
  3. 목표 합을 갖는 부분 배열 개수 세기
  4. 구간 갱신을 위한 차분 배열
← Coding Interview Prep(으)로 돌아가기