[알각코] 인프런 3-5 수들의 합

숫자만 추출

문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다.

문제풀이

# 내가 도전해본 문제풀이!

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)

처음 더하는 값과 마지막 더하는 값을 변수로 정해서 둘 다 계산하면서 차례차례 올라가야한다.