0Pricing
Coding Interview Prep · 강의

최솟값, 최댓값, 합계와 누적 합계

한 번만 순회해 리스트를 집계합니다

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

한 번에 집계하기

많은 문제에서는 배열에서 하나의 숫자만 얻으면 됩니다. Python의 내장 기능은 리스트를 한 번만 빠르게 순회하면서 이 집계를 수행합니다.

a = [4, 1, 7, 3]

합계 구하기

sum(a)는 모든 원소를 더해 전체 합을 반환합니다. C 수준으로 빠르므로 직접 누적 반복문을 작성하기보다 이 함수를 사용하시는 편이 좋습니다.

total = sum(a)  # 15

최솟값과 최댓값

min(a)과 max(a)는 최솟값과 최댓값을 반환합니다. 전체 리스트를 한 번 훑으므로 O(n) 시간이 걸립니다.

lo, hi = min(a), max(a)

두 수 비교하기

min과 max에는 인수를 따로 전달할 수도 있습니다. max(x, y)는 먼저 리스트를 만들지 않고 두 값 중 더 큰 값을 선택합니다.

best = max(score, best)

키로 집계하기

키 함수를 전달하면 파생된 값을 기준으로 비교할 수 있습니다. max(words, key=len)은 사전순 최댓값이 아니라 가장 긴 단어를 반환합니다.

longest = max(words, key=len)

빈 리스트에 대비하기

min과 max는 빈 리스트에서 오류가 발생합니다. default=를 전달하거나 먼저 길이를 확인하면 실행 중 오류를 피할 수 있습니다.

hi = max(a, default=0)

누적 합계의 개념

누적 합계는 배열을 순회하면서 합을 계속 유지합니다. 이는 누적 합과 다양한 개수 세기 기법의 출발점입니다.

run = 0
for x in a:
    run += x

지금까지의 최선 추적

배열을 훑는 동안 지금까지의 최선값 변수를 유지하면 최대 부분 배열과 같은 문제를 한 번의 순회로 해결할 수 있습니다.

best = a[0]
for x in a:
    best = max(best, x)

누적 배열 만들기

모든 누적 합계를 리스트에 저장하면 누적 배열을 얻을 수 있습니다. 이후에는 두 항목을 빼서 구간 합을 구할 수 있습니다.

pre = [0]
for x in a:
    pre.append(pre[-1] + x)

accumulate 단축법

itertools.accumulate가 누적 합계를 대신 계산해 주므로, 누적 배열을 신뢰할 수 있는 한 줄로 만들 수 있습니다.

from itertools import accumulate
pre = list(accumulate(a))

오버플로 오해에 주의하기

좋은 소식이 있습니다. Python의 정수는 범위가 제한되지 않으므로 큰 합도 오버플로가 발생하지 않습니다. 실제 위험은 잘못된 산술 연산이 아니라 느린 코드입니다.

huge = sum(range(10**6))  # fine

빠른 확인

리스트에서 가장 긴 단어를 찾아야 합니다. 어떤 호출이 올바를까요?

복습: 한 번 순회하는 힘

이제 한 번 훑으면서 합계를 구하고, 최솟값과 최댓값을 찾고, 누적 합계를 유지할 수 있습니다. 이러한 집계를 이용하면 많은 배열 문제를 하나의 반복문으로 바꿀 수 있습니다. ✨

자주 묻는 질문

“최솟값, 최댓값, 합계와 누적 합계” 강의는 무료인가요?

네 — “최솟값, 최댓값, 합계와 누적 합계” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 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개 중 3번째 강의입니다.

“최솟값, 최댓값, 합계와 누적 합계” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. CP를 위한 리스트, 인덱싱과 슬라이싱
  2. 컴프리헨션으로 배열 빠르게 만들기
  3. 최솟값, 최댓값, 합계와 누적 합계
  4. 값이 아닌 인덱스 찾기
← Coding Interview Prep(으)로 돌아가기