[백준] 11659번

코린이·2022년 5월 2일
0

백준

목록 보기
17/38

📢 11659번 문제

백준 문제 링크

🔎 풀이

사용언어 : python

num은 n개의 수로

  • for 을 사용하여 1부터 i 까지의 합을 계산하여num에 저장한다.
  • num = [5, 4, 3, 2, 1]일 경우
    구간 1부터 1까지의 합 : 5
    구간 1부터 2까지의 합 : 5 + 4 = 9
    구간 1부터 3까지의 합 : 9 + 3 = 12
    구간 1부터 4까지의 합 : 12 + 2 = 14
    구간 1부터 5까지의 합 : 14 + 1 = 15
    => num = [5, 9, 12, 14, 15]
  • 구간이 1부터 시작할 경우는 num[y-1]으로 구할 수 있다.
  • 구간이 1이 아닌 수부터 시작할 경우 num[y-1] - num[x-2]로 구할 수 있다.

🔎 코드


import sys

n, m = map(int, sys.stdin.readline().split())

num = list(map(int, sys.stdin.readline().split()))

# 미리 1부터 n 까지의 합을 num에 집어 넣는다.
for i in range(1, n):
    num[i] = num[i] + num[i-1]


#x가 1인경우와 아닌경우를 나누어 생각한다.
for j in range(m):
    x, y = map(int, sys.stdin.readline().split())
    if x == 1:
        print(num[y-1])
    else:
        print(num[y-1]-num[x-2])


profile
초보 개발자

0개의 댓글