전공/백준
11659
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문을 활용한 문제인가 싶었는데 누적합을 구한 후 해당 순서에 맞게 빼는 문제였다.
- 개념은 간단했는데 마지막 인덱스 처리를 하는 것에서 조금 생각하는 시간이 필요했다.
참고 사이트
-