๊ธธ์ด๊ฐ 10๋ง์ด๊ธฐ ๋๋ฌธ์ ํฌํฌ์ธํฐ๋ก ํ์ดํ๋ค. i๋ ์ผ์ชฝ ์ธ๋ฑ์ค, j๋ ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค๋ก ๋๊ณ ๊ฐ์ ๋ํ ๋๋ j์ ์๋ ๊ฐ์ ๋ํ๊ณ j++๋ฅผ, ๊ฐ์ ๋บ ๋๋ i์ ์๋ ๊ฐ์ ๋นผ๊ณ i++๋ฅผ ํ๊ฒ ๋๋ค.
์ฐ์ ์์ํ ๋๋ ๊ตฌ๊ฐ ๋ด์ ํฉ์ธ s ๊ฐ ๊ธฐ์ค๊ฐ S ๋ณด๋ค ์์ผ๋ฉด j์ ์๋ ๊ฐ์ ๋ํ๋ค. ๋ฐ๋๋ก s ๊ฐ ๊ธฐ์ค๊ฐ S ๋ณด๋ค ํฌ๋ฉด i์ ์๋ ๊ฐ์ ๋บ๋ค. ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ์์ผ๋ฉด ์ถฉ์กฑํ ๋๊น์ง ๊ฐ์ ๋ํด๋๊ฐ๊ณ , ๊ธฐ์ค์ ์ถฉ์กฑํ๋ค๋ฉด ๊ฐ์ฅ ์งง์ ๊ธธ์ด๋ฅผ ๊ตฌํด์ผ ํ๋ฏ๋ก ๊ฐ์ฅ ์ผ์ชฝ์ ๊ฐ์ ๋นผ๋๊ฐ๋ ๊ฒ์ด๋ค. ๊ธฐ์ค์ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ์๋ง ์งง์ ๊ธธ์ด๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ๋ฉด ๋๋ค.
// ๋ถ๋ถํฉ
package Baekjoon.Gold;
import java.util.Scanner;
public class baekjoon_1806 {
static int N, S;
static int[] arr;
static int sol(int s) {
if (s < S) {
return 0;
}
s = 0;
int i = 0, j = 0, minLen = arr.length;
while (true) {
if (s >= S) {
// ๊ธฐ์ค์ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ 1. ์ผ์ชฝ ๊ฐ์ ๋นผ๊ณ , 2. ์ผ์ชฝ ์ธ๋ฑ์ค ์ฆ๊ฐ
s -= arr[i];
minLen = Math.min(minLen, j - i);
i++;
} else {
// ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ์๋ ๊ฒฝ์ฐ. 1. ์ค๋ฅธ์ชฝ ๊ฐ์ ๋ํ๊ณ , 2. ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค ์ฆ๊ฐ
if (j >= arr.length) break;
s += arr[j];
j++;
}
}
return minLen;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
S = sc.nextInt();
arr = new int[N];
int s = 0;
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
s += arr[i];
}
System.out.println(sol(s));
}
}