ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

N๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.์ด ์ˆ˜์—ด์—์„œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ํŠน์ •์ˆซ์ž M์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ช‡ ๋ฒˆ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.๋งŒ์•ฝ N=8, M=6์ด๊ณ  ์ˆ˜์—ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด

1 2 1 3 1 1 1 2

ํ•ฉ์ด 6์ด ๋˜๋Š” ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์€ {2,1,3},{1,3,1,1},{3,1,1,1}๋กœ ์ด 3๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œํ’€์ด

ํ•ด๋‹น ๋ฐฐ์—ด์—์„œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค๊ฐ€ ํฌ์ธํ„ฐ๋กœ์„œ ์ˆœํšŒ ๋ฐ ์ฐธ์กฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. 

 

์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•œ ์ˆœํšŒ๋Š” ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์—์„œ์˜ ์ฒซ ๋ฒˆ์งธ๋กœ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•œ๋‹ค.์ด๋•Œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ๋Š” ์ตœ์ดˆ์˜ ํ•ฉ์‚ฐ์ด ๋๋‚˜๋ฉด ๊ทธ ๋‹ค์Œ ์ธ๋ฑ์Šค ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•œ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•œ ์ˆœํšŒ์—์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ์—์„œ๋ถ€ํ„ฐ ํ•ฉ์ด 6์ด ๋  ๋•Œ๊นŒ์ง€ ๊ฐ ์š”์†Œ๋“ค์„ ์ฐธ์กฐ ๋ฐ ํ•ฉ์‚ฐํ•ด์•ผ ํ•œ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ์—์„œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ๋Š” ๊ทธ ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๊ณ  ํ•ด๋‹น ์ธ๋ฑ์Šค

์š”์†Œ๋ฅผ ์‹œ์ž‘์œผ๋กœ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด 6์ด ๋‚˜์˜ค๋Š”์ง€ ์‹๋ณ„ํ•ด์•ผ ํ•œ๋‹ค.

 

์ด๋ฅผ ์œ„ํ•ด ์ด์ „ ์ธ๋ฑ์Šค ์š”์†Œ(์ด์ „ ๊ธฐ์ค€ ์ธ๋ฑ์Šค ์š”์†Œ)๋Š” ์—ฐ์‚ฐ์—์„œ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐ๊ฐ’์„ (i+1)-1 ์œผ๋กœ ํ• ๋‹นํ•˜์—ฌ ์ฃผ์—ˆ๋‹ค.

(์ดˆ๊ธฐ๊ฐ’์„ i+1 ์œผ๋กœ ํ•  ๊ฒฝ์šฐ์— i=0์ผ ๊ฒฝ์šฐ ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค)

 

์ฝ”๋“œ

function solution(arr) {
  let answer = 0;

  for(let i = 0; i < arr.length; i++) {
    let sum = 0;
    for(let j = (i+1)-1; j < arr.length; j++) {
      sum += arr[j];
      if(sum === 6) {
        answer++;
        break;
      }
      if(sum > 6) {
        break;
      }
    }
  }
  return answer;
}

let arr = [1, 2, 1, 3, 1, 1, 1, 2]
console.log(solution(arr));

 

๋ฌธ์ œํ’€์ด2

ํˆฌํฌ์ธํ„ฐ ์—ญํ• ์„ ํ•  lt์™€ rt๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ณ ์ž ํ•œ๋‹ค.lt์™€ rt๊ฐ€ ๊ฐ๊ฐ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ์ธ๋ฑ์Šค ์š”์†Œ ์‚ฌ์ด์˜ ํ•ฉ์‚ฐ์„ ํ†ตํ•ด์„œ ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ n์˜ ๊ฐ’๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ(n๋ณด๋‹ค ์ž‘์„ ๋•Œ๊นŒ์ง€)์—๋Š” ํฌ์ธํ„ฐ lt๋Š” ๋‹ค์Œ ์ธ๋ฑ์Šค๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๋‘” ์ฑ„, ํฌ์ธํ„ฐ rt๋งŒ์„ ๋‹ค์Œ ์ธ๋ฑ์Šค ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ๋” ์ด๋™์‹œ์ผœ ์ค€๋‹ค.๋ฐ˜๋Œ€๋กœ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ n์˜ ๊ฐ’๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ์ž‘์„ ๊ฒฝ์šฐ์—๋Š” n๋ณด๋‹ค ๊ทธ ๊ฐ’์ด ์ž‘์•„์งˆ ๋•Œ๊นŒ์ง€ ํฌ์ธํ„ฐ rt๋Š” ๊ทธ๋Œ€๋กœ ๋‘” ์ฑ„, ํฌ์ธํ„ฐ lt๋งŒ์„ ๋‹ค์Œ ์ธ๋ฑ์Šค ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ๋” ์ด๋™์‹œ์ผœ ์ค€๋‹ค.

 

์ด๋•Œ ํฌ์ธํ„ฐ rt์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š”, ์ธ๋ฑ์Šค ์š”์†Œ ์‚ฌ์ด์˜ ํ•ฉ์‚ฐํ•œ ๊ฐ’์—๋Š” ๋‹ค์Œ์— ์ฐธ์กฐ๋  ์ธ๋ฑ์Šค ์š”์†Œ๊นŒ์ง€ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ธํ„ฐ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•œ ํ›„์— ํ•ฉ์‚ฐ ์—ฐ์‚ฐ์„ ํ•œ๋‹ค.๋ฐ˜๋Œ€๋กœ ํฌ์ธํ„ฐ lt์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š”, ์ธ๋ฑ์Šค ์š”์†Œ ์‚ฌ์ด์˜ ํ•ฉ์‚ฐํ•œ ๊ฐ’์—๋Š” ์ด์ „์— ์ฐธ์กฐ๋ฌ๋˜ ์ธ๋ฑ์Šค ์š”์†Œ๋Š” ๋ฐฐ์ œ๋˜์–ด์•ผ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ธํ„ฐ๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์ „์— ๊ฐ์‚ฐ ์—ฐ์‚ฐ์„ ํ•œ๋‹ค.

 

ํฌ์ธํ„ฐ lt๋ฅผ ์ด๋™์‹œํ‚ค๋“  rt๋ฅผ ์ด๋™์‹œํ‚ค๋“  ๊ฐ„์—, ํฌ์ธํ„ฐ์˜ ์ด๋™ ํ›„ n์˜ ๊ฐ’์ด 6์ด ๋  ๊ฒฝ์šฐ์—๋Š” answer๋ฅผ ์ฆ๊ฐ์‹œ์ผœ ์ค€๋‹ค.

 

์ฝ”๋“œ

function solution(arr) {
  let answer = 0;
  let lt = 0;
  let rt = 1;
  let sum = arr[lt] + arr[rt];

   while(rt < arr.length) {
    if(sum < 6) {
      sum += arr[++rt];
      if(sum === 6) answer++
    }
    if(sum >= 6) {
      sum -= arr[lt++];
      if(sum === 6) answer++;
    }
   }
  
  return answer;
}

let arr = [1, 2, 1, 3, 1, 1, 1, 2]
console.log(solution(arr));
function solution(arr) {
  let answer = 0;
  let lt = 0;
  let sum = 0;

  for (let rt = 0; rt < arr.length; rt++) {
    sum += arr[rt];
    if (sum === 6) answer++;
    while (sum >= 6) {
      sum -= arr[lt++];
      if (sum === 6) answer++;
    }
  }

  return answer;
}

let arr = [1, 2, 1, 3, 1, 1, 1, 2];
console.log(solution(arr));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ