๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์ตœ๋Œ€ ๊ธธ์ด ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์ตœ๋Œ€ ๊ธธ์ด ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด

์š”์ผ์ด 2022. 1. 13. 01:36
๋ฐ˜์‘ํ˜•

์„ค๋ช…

0๊ณผ 1๋กœ ๊ตฌ์„ฑ๋œ ๊ธธ์ด๊ฐ€ N์ธ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ์ด ์ˆ˜์—ด์—์„œ ์ตœ๋Œ€ k๋ฒˆ์„ 0์„ 1๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ์ตœ๋Œ€ k๋ฒˆ์˜ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ์ด ์ˆ˜์—ด์—์„œ 1๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ์ตœ๋Œ€ ๊ธธ์ด์˜ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

๋งŒ์•ฝ ๊ธธ์ด๊ฐ€ ๊ธธ์ด๊ฐ€ 14์ธ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง€๊ณ  k=2๋ผ๋ฉด

1 1 0 0 1 1 0 1 1 0 1 1 0 1

์—ฌ๋Ÿฌ๋ถ„์ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” 1์ด ์—ฐ์†๋œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์€

์ด๋ฉฐ ๊ทธ ๊ธธ์ด๋Š” 8์ž…๋‹ˆ๋‹ค.

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ˆ˜์—ด์˜ ๊ธธ์ด์ธ ์ž์—ฐ์ˆ˜ N(5<=N<100,000)์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์— N๊ธธ์ด์˜ 0๊ณผ 1๋กœ ๊ตฌ์„ฑ๋œ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ถœ๋ ฅ

์ฒซ ์ค„์— ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”.

 
 
์˜ˆ์‹œ์ž…๋ ฅ
14 2
1 1 0 0 1 1 0 1 1 0 1 1 0 1

 

์ถœ๋ ฅ

8
 

 

- ํ’€์ด 

๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค๊ฐ€๋ฉฐ i๋ฅผ ์˜ค๋ฅธ์ชฝ ํฌ์ธํŠธ๋กœ ์žก๊ณ , lt๋กœ ์™ผ์ชฝ ํฌ์ธํŠธ๋ฅผ ์žก์•„ 0์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด๊ฐ€๋ฉฐ ๊ธธ์ด๋ฅผ ์žฌ๊ณ  ์ด๋ฅผ ๋น„๊ตํ•˜์˜€์Œ

import java.util.*;

public class Main {

    public static void solution(int a, int b, int[] array){

        int result = 0;
        int change = 0;
        int cnt = 0;
        int lt = 0;

        for(int i=0; i<a; i++){

            if(array[i] == 0){
                change++;
            }

            while(b<change){
                lt++;
                if(array[lt] == 0){
                    change--;
                }
            }

            cnt = i-lt;

            if(result < cnt){
                result = cnt;
            }

        }

        System.out.println(result);

    }

    public static void main(String[] args) {

        Main main = new Main();
        Scanner kb = new Scanner(System.in);

        int a = kb.nextInt();
        int b = kb.nextInt();

        int[] array = new int[a];

        for(int i=0; i<a; i++){
            array[i] = kb.nextInt();
        }

        Main.solution(a, b, array);
    }

}

 

 

 

Comments