숫자만 추출
문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다.
문제풀이
# 내가 도전해본 문제풀이!
N, M = map(int, input().split())
a = map(int, input().split())
p = 0
res = 0
cnt = 0
while p < N:
if (res + a[p] == M):
cnt += 1
res = 0
else:
res = res + a[p]
p += 1
print(cnt)
내가 푼 문제는 현재 번호의 수에서 조건을 충족하여 다시 값이 초기화 되었을 때, 해당 수를 더이상 체크안하고 다음 값으로 넘어가므로 다른 방식으로 풀어야한다 ㅠㅡㅠ
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:
if rt < n:
tot += a[rt]
rt+=1
else:
break
elif tot == m:
cnt+=1
tot -= a[lt]
lt += 1
else:
tot -= a[lt]
lt += 1
print(cnt)
처음 더하는 값과 마지막 더하는 값을 변수로 정해서 둘 다 계산하면서 차례차례 올라가야한다.