yha97 2022. 11. 4. 14:26

날짜 : 2022. 11. 04

사용 언어 : python

 

문제

 

 

코드

import sys

n, m = map(int, sys.stdin.readline().split()) # 리스트 크기, 테스트케이스
a = list(map(int, sys.stdin.readline().split()))
for i in range(1, len(a)):
    a[i] += a[i-1] # 누적합 구하기
    
for _ in range(m):
    start, end = map(int, sys.stdin.readline().split())
    if start == end: # 서로 같을 때
        if start == 1: print(a[0])
        else: print(a[start-1] - a[start-2])
        continue
    elif start > end : start, end = end, start # 대소관계 정리
    if start - 2  < 0: print(a[end-1]) # 음수가 나오는 경우 방지
    else: print(a[end-1] - a[start-2])

 

 

알게된 점

- 기본적인 for문을 활용한 문제인가 싶었는데 누적합을 구한 후 해당 순서에 맞게 빼는 문제였다.

- 개념은 간단했는데 마지막 인덱스 처리를 하는 것에서 조금 생각하는 시간이 필요했다.

 

 

참고 사이트