[파이썬] 백준 1806 : 부분합 (골드4)
풀이
방향성 생각
- $N=10^{6}$이라 $N^2$로는 불가능하다.
- 투포인터를 통해서 한쪽 피벗에서 누적 합을 기록하며 목표값을 넘는 순간 값을 기록한다.
전체코드
N,goal = map(int,input().split())
arr = list(map(int,input().split()))
l,r = 0,0
carr = 0
answer = N+1
while True:
if carr >= goal:
answer = min(answer,r-l)
carr -= arr[l]
l += 1
elif r == N:
break
else:
carr += arr[r]
r += 1
print(answer if answer != N+1 else 0)
코멘트
- .
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 백준 2230 : 수 고르기(골드5) (0) | 2024.10.02 |
---|---|
[파이썬] 백준 3151 : 합이 0 (골드4) (0) | 2024.10.02 |
[파이썬] 백준 2473 : 세 용액 (골드3) (0) | 2024.08.04 |
[파이썬] 백준 11660 : 구간 합 구하기 5 (실버1) (0) | 2024.08.02 |
[파이썬] 백준 30804 : 과일탕후루 (실버2) (0) | 2024.06.11 |
[파이썬] 프로그래머스 : 유사 칸토어 비트열 (레벨3) (0) | 2024.06.10 |
[파이썬] 프로그래머스 : 점 찍기 (레벨2) (0) | 2024.06.10 |
댓글