홍우진의 개발 일기장
[백준] 2003번: 수들의 합 2/ 파이썬 본문
728x90
반응형
문제 설명
N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오.
입력값
첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.
출력값
첫째 줄에 경우의 수를 출력한다.
예제
입력 | 출력 |
4 2 1 1 1 1 |
3 |
10 5 1 2 3 4 2 5 3 1 1 2 |
3 |
작성 코드
n,m = map(int, input().split())
a = list(map(int, input().split()))
start = 0
answer = 0
end = 0
while start <= end and end <= len(a):
summ = sum(a[start:end])
if summ == m:
answer += 1
if summ <= m:
end += 1
elif summ > m and start < end:
start += 1
else:
start += 1
end += 1
print(answer)
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 13305번: 주유소/ 파이썬 (0) | 2022.07.05 |
---|---|
[백준] 10825번: 국영수/ 파이썬 (0) | 2022.07.05 |
[백준] 11651번: 좌표 정렬하기 2/ 파이썬 (0) | 2022.07.02 |
[백준] 1021번: 큐 2/ 파이썬 (0) | 2022.07.01 |
[백준] 1021번: 회전하는 큐/ 파이썬 (0) | 2022.06.30 |
Comments