최종코드(코드링크)
import sys
input = sys.stdin.readline
N, S = map(int, input().split())
array = list(map(int, input().split()))
sum, len = 0, 1e9
left, right = 0, 0
while True:
if sum >= S:
len = min(len, right - left)
sum -= array[left]
left += 1
elif right == N:
break
else:
sum += array[right]
right += 1
if len == 1e9: print(0)
else: print(len)
Two Pointers 방법으로 가능한 모든 경우의 수를 고려하되 가장 짧은 길이를 출력
'알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스 - Python] 숫자 문자열과 영단어 (0) | 2024.08.09 |
---|---|
[백준 - Python] 30804. 과일 탕후루 (0) | 2024.08.09 |
[백준 - Python] 17609. 회문 (0) | 2024.08.09 |
[백준 - Python] 2230. 수 고르기 (0) | 2024.08.09 |
[백준 - Python] 11728. 배열 합치기 (0) | 2024.08.09 |