๋ฌธ์
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 1806๋ฒ
ํ์ด ๊ณผ์
ํฌ ํฌ์ธํฐ
๋ฅผ ํ์ฉํด์ ์ฐ์๋ ์์ด์ ํฉ์ด S
์ด์์ธ ๊ตฌ๊ฐ ์ค ๊ฐ์ฅ ๊ธธ์ด๊ฐ ์งง์ ๊ตฌ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์
๋๋ค.
๋ชจ๋ ์ซ์๊ฐ ์์ ์ ์์ด๋ฏ๋ก ๋ ๊ฐ์ ํฌ์ธํฐ head, tail
์ ์ฌ์ฉํด์ ํฉ์ด S
๋ณด๋ค ์ปค์ง ๊ฒฝ์ฐ head
๋ฅผ ์ฆ๊ฐ์ํค๊ณ
S
๋ณด๋ค ์์์ง ๊ฒฝ์ฐ tail
์ ์ฆ๊ฐ์ํค๋ฉด ๋ฉ๋๋ค.
์ฝ๋
import sys
N, S = list(map(int, sys.stdin.readline().split()))
nums = list(map(int, sys.stdin.readline().split()))
def solution():
answer = sys.maxsize
head, tail = 0, 1
acc = nums[head] + nums[tail]
while head <= tail:
if acc < S:
tail += 1
if tail < N:
acc += nums[tail]
else:
break
else:
answer = min(answer, tail - head + 1)
acc -= nums[head]
head += 1
return answer if answer != sys.maxsize else 0
print(solution())
๋ฐ์ํ
'๐ algorithm > boj' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 2458 - ํค ์์ (0) | 2021.03.08 |
---|---|
BOJ 18111 - ๋ง์ธํฌ๋ํํธ (0) | 2021.03.08 |
BOJ 6186 - Best Grass (0) | 2021.03.08 |
BOJ 8972 - ๋ฏธ์น ์๋์ด๋ ธ (0) | 2021.03.08 |
BOJ 19941 - ํ๋ฒ๊ฑฐ ๋ถ๋ฐฐ (0) | 2021.03.08 |
๐ฌ ๋๊ธ