반응형
문제
N개 수로 된 수열이 있을 때 i번째 수부터 j번째 수 까지의 합이 주어지는 값과 같은 경우의 수를 구하시오.
주의
풀이
# 입력 받는 변수
n, m = map(int, input().split())
a = list(map(int, input().split()))
# 알고리즘 풀이에 사용 될 전역 변수
lt = 0
rt = 1
tot = a[0]
cnt = 0
# 알고리즘 로직
while True: # while문에 True값을 줘서 무한 반복문을 완성시킨다.
if tot<m:
if rt<n:
tot+=a[rt]
rt+=1
else: # 더할 게 없을 경우를 위해 else문에 break를 걸어준다.
break
elif tot == m:
cnt += 1
tot -= a[lt]
lt += 1
else:
tot -= a[lt]
lt += 1
print(cnt)
반응형
'Algorithm > 파이썬 알고리즘 문제풀이 (코딩테스트대비)' 카테고리의 다른 글
[파이썬 알고리즘 문제풀이] : 사과나무 (0) | 2022.01.02 |
---|---|
[파이썬 알고리즘 문제풀이] : 격자판 최대합 (0) | 2021.12.31 |
[파이썬 알고리즘 문제풀이] : 두 리스트 합치기 (0) | 2021.12.30 |
[파이썬 알고리즘 문제풀이] : 카드 역배치(정올 기출) (0) | 2021.12.30 |
[파이썬 알고리즘 문제풀이] : 숫자만 추출 (0) | 2021.12.29 |
댓글