코드
# n이 10000이라 O(N^2)으로 아슬하게 할 수도 있겠지만, 제한시간은 0.5초
# 따라서 O(N^2)보다 작은 시간 복잡도로 해결해야함
n,m = map(int, input().split())
num = [*map(int, input().split())]
s,e = 0,0
hap = num[s]
cnt = 0
while e < n:
# start 먼저 처리
# end가 마지막에 도달했다고 바로 종료하면 start의 위치가 조절되지 않고
# 종료되기 때문에, 마지막 위치에 도달해도 start가 계산되도록 해야한다
if hap > m:
hap -= num[s]
s+=1
elif hap < m:
e += 1
if e < n: # 범위가 벗어날 수도 있다
hap += num[e]
else:
cnt += 1
hap -= num[s]
s += 1
print(cnt)
'백준' 카테고리의 다른 글
[백준] 2467번 용액 파이썬 코드 (0) | 2023.09.08 |
---|---|
[백준] 4158번 CD 파이썬 코드 (1) | 2023.09.07 |
[백준] 1940번 주몽 파이썬 코드 (0) | 2023.09.07 |
[백준] 2776번 암기왕 파이썬 코드 (0) | 2023.09.06 |
[백준] 1654번 랜선 자르기 파이썬 코드 (0) | 2023.09.06 |
코드
# n이 10000이라 O(N^2)으로 아슬하게 할 수도 있겠지만, 제한시간은 0.5초
# 따라서 O(N^2)보다 작은 시간 복잡도로 해결해야함
n,m = map(int, input().split())
num = [*map(int, input().split())]
s,e = 0,0
hap = num[s]
cnt = 0
while e < n:
# start 먼저 처리
# end가 마지막에 도달했다고 바로 종료하면 start의 위치가 조절되지 않고
# 종료되기 때문에, 마지막 위치에 도달해도 start가 계산되도록 해야한다
if hap > m:
hap -= num[s]
s+=1
elif hap < m:
e += 1
if e < n: # 범위가 벗어날 수도 있다
hap += num[e]
else:
cnt += 1
hap -= num[s]
s += 1
print(cnt)
'백준' 카테고리의 다른 글
[백준] 2467번 용액 파이썬 코드 (0) | 2023.09.08 |
---|---|
[백준] 4158번 CD 파이썬 코드 (1) | 2023.09.07 |
[백준] 1940번 주몽 파이썬 코드 (0) | 2023.09.07 |
[백준] 2776번 암기왕 파이썬 코드 (0) | 2023.09.06 |
[백준] 1654번 랜선 자르기 파이썬 코드 (0) | 2023.09.06 |