구간 합 예제 - 1

문제 분석

  • 수의 개수와 질의의 개수는 최대 100,000이다.

  • 구간마다 합을 매번 계산하면 시간 제한(0.5초)안에 절대 끝낼 수 없다.

    • 매번 계산한다면 최대 100,000^2 정도의 연사을 수행한다.

  • 구간 합을 사용해야 한다.

손으로 풀어보기

  1. N개의 수를 입력받으면서 동시에 합 배열을 생성한다.

  2. 구간 i~j가 주어지면 구간 합을 구하는 공식으로 정답을 출력한다.

슈도코드

n(숫자 개수), m(질의 개수)
numbers 변수에 숫자 데이터 저장
sumList 합 배열 변수 선언
temp 변수 선언

for numbers 데이터 차례대로 검색:
    temp에 현재 숫자 누적
    합 배열에 temp값 저장

for 질의 개수 만큼:
    질의 범위 받기(start ~ end)
    구간 합 출력하기(sumList[end] - sumList[start-1]

코드 구현

  • 리스트와 .join()은 자바의 StringBuilder같은 역할을 한다.

Last updated