수의 합 구하기 파이썬
- 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)
풀이 : 이 문제는 기준되는 수, 합한 수, 먼저 가는 배열의 수, 늦게 가는 배열의 수를 설정하고 가는 것이 중요하다
'코딩테스트 > 풀이' 카테고리의 다른 글
[코딩 테스트] 다이아몬드 합 구하기 (0) | 2022.02.04 |
---|---|
[코딩 테스트] 격자판 최대합 파이썬 (0) | 2022.02.04 |
[코딩 테스트] 프로그래머스 정수 제곱근 판별 (0) | 2022.02.04 |
[코딩 테스트] 프로그래머스 완주하지 못한 선수 파이썬 (0) | 2022.01.31 |
[코딩 테스트] 프로그래머스 내적 파이썬 (0) | 2022.01.31 |
댓글