๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[๋ฐฑ์ค€ ์Šคํ„ฐ๋”” 10์ฃผ์ฐจ] 1806๋ฒˆ ๋ถ€๋ถ„ํ•ฉ ๊ณจ๋“œ4 - ์ž๋ฐ”(JAVA) / ํˆฌ ํฌ์ธํ„ฐ

๐Ÿ“‘ ๋ฌธ์ œ

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

 

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

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

www.acmicpc.net

๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ

๋ฌธ์ œ

10,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๊ธธ์ด N์งœ๋ฆฌ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜์—ด์—์„œ ์—ฐ์†๋œ ์ˆ˜๋“ค์˜ ๋ถ€๋ถ„ํ•ฉ ์ค‘์— ๊ทธ ํ•ฉ์ด S ์ด์ƒ์ด ๋˜๋Š” ๊ฒƒ ์ค‘, ๊ฐ€์žฅ ์งง์€ ๊ฒƒ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

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

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ตœ์†Œ์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์ผ ๊ทธ๋Ÿฌํ•œ ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด 0์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

 

 

โœ’๏ธ ํ’€์ด

 ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์จ๋ณด์ž ํ•ด์„œ ๊ณ ๋ฅธ ๋ฌธ์ œ์˜€๋‹ค. ์–ด๋”˜๊ฐ€์˜ ์ฝ”ํ…Œ์—์„œ๋„ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๋น„์Šทํ•˜๊ฒŒ ํ’€์—ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค.

๐Ÿ”ฅ ์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์ฝ”๋“œ ์œ ํ˜•์„ ์™ธ์›Œ๋‘๋ฉด ๋‘๊ณ ๋‘๊ณ  ์ž˜ ์“ธ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์™ธ์›Œ๋‘์ž! ๐Ÿ”ฅ

 

 โœ”๏ธ ๋งจ ์ฒ˜์Œ ์œ„์น˜์— ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ๋‘”๋‹ค.

 โœ”๏ธ ํ˜„์žฌ SUM ๊ฐ’์ด ๋ชฉํ‘œ๋ณด๋‹ค ์ ์œผ๋ฉด, ์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ํ•œ ์นธ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๊ทธ ๊ฐ’์„ ๋”ํ•ด์ค€๋‹ค. 

 โœ”๏ธ ํ˜„์žฌ SUM ๊ฐ’์ด ๋ชฉํ‘œ๋ณด๋‹ค ๋งŽ์œผ๋ฉด, ์ตœ์†Œํ•ฉ์€ ๋„˜์€ ๊ฒƒ์ด๋ฏ€๋กœ ํ˜„์žฌ ๊ธธ์ด๊ฐ€ ์ตœ์†Œ ๊ธธ์ด์ธ์ง€ ํ™•์ธํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.

โœ”๏ธ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๋Š” ๊ฒƒ์€ "์ตœ์†Œ ๊ธธ์ด"์ด๋ฏ€๋กœ, ์ตœ๋Œ€ํ•œ ์ ์€ ์ˆ˜๋ฅผ ํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 ๋”ฐ๋ผ์„œ SUM๊ฐ’์ด ๋ชฉํ‘œ๋ฅผ ๋„˜์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” ์ตœ์†Œ ๊ธธ์ด๋ฅผ ์ฐพ์•„ ์™ผ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ํ•œ ์นธ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

 ๋งจ ์™ผ์ชฝ ๊ฐ’์„ ๋บ€ ์ƒˆ๋กœ์šด SUM๊ฐ’์€, ๋‹ค์‹œ ๋ชฉํ‘œ๋ณด๋‹ค ํฐ์ง€ ์ ์€์ง€์— ๋”ฐ๋ผ ์ƒˆ๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

 

 

 

 

๐Ÿ’ป ์†Œ์Šค์ฝ”๋“œ: ์ž๋ฐ”(Java)

public class Main_๋ฐฑ์ค€_1806_๋ถ€๋ถ„ํ•ฉ_๊ณจ๋“œIV {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st.nextToken()); // input length
		int S = Integer.parseInt(st.nextToken()); // minimum sum
		int[] array = new int[N];
		st = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; i++) {
			array[i] = Integer.parseInt(st.nextToken());
		}//input
		
		int left = 0, right = 0, sum = 0;
		int MAX = 100000001;
		int result = MAX;
		
		while(left<=right) {
			if(sum >= S) {
				result = Math.min(result, right-left);
				sum -= array[left++];
			}else if(right==N) break;
			else{
				sum += array[right++];
			}
		}
		System.out.println(result==MAX?0:result);
		
	}//end of main
}//end of class

 

 

 

 

 

 

 

 

 

 

๐Ÿ’Ž ๐Ÿ’Ž ๐Ÿ’Ž

 

 

๏ผฐ๏ฝ๏ฝ“๏ฝ”๏ฝ…๏ฝ„ ๏ผข๏ฝ™ ๏ผณ๏ผก๏ผน

๐˜›๐˜ฉ๐˜ข๐˜ฏ๐˜ฌ๐˜ด ๐˜ง๐˜ฐ๐˜ณ ๐˜ณ๐˜ฆ๐˜ข๐˜ฅ๐˜ช๐˜ฏ๐˜จ