Search
Duplicate
🍇

수들의 합 2

주차
15
문제번호
2003
언어
Python
티어
실버
유형
투 포인터
nj_Blog
nj_상태
이해도
풀이
사람
이해도 2
13 more properties

문제

풀이

구간을 start 이상 end 미만으로 계산하는게 편함
summ < m 인데 end 가 끝에 있으면 break 다.
summ 연산이 다 끝난후에 m 과 같은지 확인하는 방식

구현

n, m = map(int, input().split()) num = list(map(int, input().split())) count = 0 start = 0 end = 0 summ = 0 while (1): if summ < m: if end >= n: break summ += num[end] end += 1 elif summ >= m: summ -= num[start] start += 1 if summ == m: count += 1 print(count)
Python
복사
아래꺼는 start 이상 end 이하로 계산할때
summ == m 의 조건을 고려하는 순서가 먼저와야한다.
포인터가 이동되고 summ 이 연산되기 때문에
포인터를 이동시키기전에 m 과 같은지 확인해야함
n, m = map(int, input().split()) num = list(map(int, input().split())) count = 0 start = 0 end = 0 summ = num[end] while (1): if summ == m: count += 1 if summ < m: end += 1 if end >= n: break summ += num[end] elif summ >= m: summ -= num[start] start += 1 print(count)
Python
복사