๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold4] 1806๋ฒˆ_๋ถ€๋ถ„ํ•ฉ

Dbswnstjd 2023. 4. 1. 19:49

๋ฌธ์ œ

https://www.acmicpc.net/problem/1806

 

1806๋ฒˆ: ๋ถ€๋ถ„ํ•ฉ

์ฒซ์งธ ์ค„์— N (10 ≤ N < 100,000)๊ณผ S (0 < S ≤ 100,000,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜์—ด์˜ ๊ฐ ์›์†Œ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด์ ธ ์žˆ์œผ๋ฉฐ, 10,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 1806๋ฒˆ ๋ฌธ์ œ - ๋ถ€๋ถ„ํ•ฉ
import sys
input = sys.stdin.readline
n, s = map(int, input().split())
num = list(map(int, input().split()))
target, left, right = 0, 0, 0
min_length = 1e9


while True:
    # print("left: ", left, " right: ", right)
    if target >= s:
        min_length = min(min_length, right - left) 
        target -= num[left] 
        left += 1 
        
    else:
        if right == n:
            break
        
        target += num[right] 
        right += 1 

if min_length == 1e9:
    print(0)
else:
    print(min_length)

ํˆฌํฌ์ธํ„ฐ ๋ฌธ์ œ๋Š” ์ฒ˜์Œ ํ’€์–ด๋ด์„œ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค.