๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ? (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ) ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜

ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ? (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ)

sehaan 2023. 5. 10. 20:55

ํˆฌํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 

 

- ๋ฆฌ์ŠคํŠธ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ ๋‘ ๊ฐœ์˜ ์ (์‹œ์ž‘์  , ๋์ )์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

 

- ์‹œ์ž‘์ ๊ณผ ๋์ ์œผ๋กœ ์ ‘๊ทผํ•  ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•ด๋‹น ์ˆ˜์—ด์—์„œ ํ•ฉ์ด 5์ธ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž

 

 

1 2 3 2 5

 

์™„์ „ ํƒ์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ์ด๋•Œ ํˆฌํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํˆฌํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

1. ์ฒ˜์Œ์—๋Š” ์‹œ์ž‘์ ๊ณผ ๋์  ๋ชจ๋‘ 0์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.

 

1(start,end) 2 3 2 5

 

2. ํ•ฉ์ด ๋ชฉํ‘œ๊ฐ’๊ณผ ๊ฐ™์œผ๋ฉด ์นด์šดํŠธํ•œ๋‹ค.

 

3. ๋งŒ์•ฝ ๋ชฉํ‘œ๊ฐ’๋ณด๋‹ค ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ์ž‘๋‹ค๋ฉด end ์ธ๋ฑ์Šค๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

 

1(start) 2(end) 3 4 5

 

3-1. ํ˜„์žฌ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ฐ’์€ 3์ด๋ฏ€๋กœ end ์ธ๋ฑ์Šค๋ฅผ 1๋งŒํผ ๋” ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

         ๊ทธ๋ ‡๊ฒŒ๋˜๋ฉด ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ฐ’์€ 6์ด ๋œ๋‹ค.

 

4. ๋งŒ์•ฝ ๋ชฉํ‘œ๊ฐ’๋ณด๋‹ค ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ํฌ๋‹ค๋ฉด start ์ธ๋ฑ์Šค๋ฅผ 1๋งŒํผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

 

1 2(start) 3(end) 4 5

  

5. ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํ™•์ธ ํ• ๋•Œ๊นŒ์ง€ 2~4 ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ํ•ฉ์ด 5๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๋ชจ๋‘ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค !

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ

 

 

 

ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ์ด๋‹ค

 

๋ถ„์„

ํ•ฉ์ด k ๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ํˆฌํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜๋ฉด ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ธ๋ฑ์Šค์˜ ๊ธธ์ด๋ฅผ ๋น„๊ตํ•ด์„œ ๊ฐ€์žฅ ์ตœ์†Œ ์ผ ๋•Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์ฝ”๋“œ

class Solution {
    
    public int[] solution(int[] sequence, int k) {
        int min = Integer.MAX_VALUE;
        int end = 0;
        int num = sequence.length;
        int sum = 0;
        int[] answer = new int[2];
        
        for(int start=0;start<num;start++){
            while(sum < k && end < num){
                sum += sequence[end];
                end ++;
            }
            
            if(sum == k && min > (end-1) - start) {
                min = (end-1) - start;
                answer[0] = start;
                answer[1] = end-1;
            }
            
            sum -= sequence[start];
        }
        
        return answer;
    }
}

 

 

"์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ" ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

https://www.youtube.com/watch?v=ttLRltNDiCo