프로그래밍/Do it! 알고리즘 코딩테스트 - 파이썬 편

[파이썬/python] 11639번 구간 합 구하기 4

기록합시다 2025. 3. 2. 01:24
#내 답 -> 시간 초과
N, M = map(int,input().split())
#N : 수의 개수
#M : 합을 구해야하는 횟수
A = list(map(int,input().split()))
S = [0]
sum = 0
for i in range(N):
    sum += A[i]
    S.append(sum)
for _ in range(M):
    i,j = map(int,input().split())
    print(S[j]-S[i-1]) #S[3]-S[0]
    
#교재 참고해서 작성한 답.    
import sys

input = sys.stdin.readline
N, M = map(int,input().split())
#N : 수의 개수
#M : 합을 구해야하는 횟수
A = list(map(int,input().split()))
S = [0] #1<=i<=j<=N 이라서... 
sum = 0
for i in A:
    sum += i
    S.append(sum)
for _ in range(M):
    i,j = map(int,input().split())
    print(S[j]-S[i-1]) 

달라진거는 sys.stdin.readline으로 받은거랑, for i in 리스트 해서 리스트로 바로 받은 거 뿐인데 시간 차이가 많이 나네. 얼마나 차이 나는지 보려고 했는데 타임 아웃된건 안 알려줌.

sys.stdin.readline이랑 for 리스트로 바로 받는거 신경 써야겠다.