코딩테스트 with PYTHON
[python] 코딩테스트 대비 - 수열의 합 (경우의 수)
탱이나라
2021. 12. 20. 21:33
문제)

정답 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import sys
#sys.stdin = open("input.txt", 'r')
n, m=map(int, input().split())
a=list(map(int, input().split()))
lt=0#왼쪽 포인터
rt=1#오른쪽 포인터
tot=a[0]#합
cnt=0#카운트
while True:
if tot<m:#더한 값이 m보다 작으면 오른쪽으로 한칸 더하기
if rt<n:
tot+=a[rt]
rt+=1
else:#오른쪽으로 갈 수 없으면 종료
break
elif tot==m:#정답이라면
cnt+=1#카운트 하고
tot-=a[lt]#가장 왼쪽 값 빼주기
lt+=1#왼쪽 포인터 증가
else:#크다면 정답일때와 똑같은 동작(카운트는 x)
tot-=a[lt]
lt+=1
print(cnt)#정답
|
cs |