본문 바로가기
코딩테스트/풀이

[코딩 테스트] 수의 합 구하기 파이썬

by Yikanghee 2022. 2. 4.

수의 합 구하기 파이썬

  • N개의 수로 된 수열 A[1], A[2], a[N] 이 있다
  • 이 수열의 i 번째 수부터 j번째 수까지의 합 A[i] + a[i+1] + + a[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오
  • 입력예제

8 3

1 2 1 3 1 1 1 2

  • 출력예제

5

m, n = map(int, input().split())
a= list(map(int, input().split()))

lt = 0
rt = 1

tot = a[0]
cnt = 0

while True :
    if tot < n:
        if rt < m :
            tot += a[rt]
            rt += 1
        else :
            break
    elif tot == n:
        cnt+=1
        tot-=a[lt]
        lt+=1
    else :
        tot -= a[lt]
        lt+=1
print(cnt)

풀이 : 이 문제는 기준되는 수, 합한 수, 먼저 가는 배열의 수, 늦게 가는 배열의 수를 설정하고 가는 것이 중요하다

댓글