Algorithm

[Algorithm] ๋ง์น ํ•˜๊ธฐ

ghkdu2 2023. 3. 15. 09:39

๐Ÿ“‹ ๋ฌธ์ œ

์–ด๋А ํ•™๊ต์— ํŽ˜์ธํŠธ๊ฐ€ ์น ํ•ด์ง„ ๊ธธ์ด๊ฐ€ n๋ฏธํ„ฐ์ธ ๋ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒฝ์— ๋™์•„๋ฆฌ · ํ•™ํšŒ ํ™๋ณด๋‚˜ ํšŒ์‚ฌ ์ฑ„์šฉ ๊ณต๊ณ  ํฌ์Šคํ„ฐ ๋“ฑ์„ ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ดํ”„๋กœ ๋ถ™์˜€๋‹ค๊ฐ€ ์ฒ ๊ฑฐํ•  ๋•Œ ๋–ผ๋Š” ์ผ์ด ๋งŽ๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ํŽ˜์ธํŠธ๊ฐ€ ๋ฒ—๊ฒจ์ง€๊ณค ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ธํŠธ๊ฐ€ ๋ฒ—๊ฒจ์ง„ ๋ฒฝ์ด ๋ณด๊ธฐ ํ‰ํ•ด์ ธ ํ•™๊ต๋Š” ๋ฒฝ์— ํŽ˜์ธํŠธ๋ฅผ ๋ง์น ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„“์€ ๋ฒฝ ์ „์ฒด์— ํŽ˜์ธํŠธ๋ฅผ ์ƒˆ๋กœ ์น ํ•˜๋Š” ๋Œ€์‹ , ๊ตฌ์—ญ์„ ๋‚˜๋ˆ„์–ด ์ผ๋ถ€๋งŒ ํŽ˜์ธํŠธ๋ฅผ ์ƒˆ๋กœ ์น  ํ•จ์œผ๋กœ์จ ์˜ˆ์‚ฐ์„ ์•„๋ผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ฒฝ์„ 1๋ฏธํ„ฐ ๊ธธ์ด์˜ ๊ตฌ์—ญ n๊ฐœ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๊ตฌ์—ญ์— ์™ผ์ชฝ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŽ˜์ธํŠธ๋ฅผ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•  ๊ตฌ์—ญ๋“ค์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒฝ์— ํŽ˜์ธํŠธ๋ฅผ ์น ํ•˜๋Š” ๋กค๋Ÿฌ์˜ ๊ธธ์ด๋Š” m๋ฏธํ„ฐ์ด๊ณ , ๋กค๋Ÿฌ๋กœ ๋ฒฝ์— ํŽ˜์ธํŠธ๋ฅผ ํ•œ ๋ฒˆ ์น ํ•˜๋Š” ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • ๋กค๋Ÿฌ๊ฐ€ ๋ฒฝ์—์„œ ๋ฒ—์–ด๋‚˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ๊ตฌ์—ญ์˜ ์ผ๋ถ€๋ถ„๋งŒ ํฌํ•จ๋˜๋„๋ก ์น ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๋กค๋Ÿฌ์˜ ์ขŒ์šฐ์ธก ๋์„ ๊ตฌ์—ญ์˜ ๊ฒฝ๊ณ„์„  ํ˜น์€ ๋ฒฝ์˜ ์ขŒ์šฐ์ธก ๋๋ถ€๋ถ„์— ๋งž์ถ˜ ํ›„ ๋กค๋Ÿฌ๋ฅผ ์œ„์•„๋ž˜๋กœ ์›€์ง์ด๋ฉด์„œ ๋ฒฝ์„ ์น ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํŽ˜์ธํŠธ๋ฅผ ์น ํ•˜๋Š” ๊ตฌ์—ญ๋“ค์„ ์™„์ „ํžˆ ์น ํ•œ ํ›„ ๋ฒฝ์—์„œ ๋กค๋Ÿฌ๋ฅผ ๋–ผ๋ฉฐ, ์ด๋ฅผ ๋ฒฝ์„ ํ•œ ๋ฒˆ ์น ํ–ˆ๋‹ค๊ณ  ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ ๊ตฌ์—ญ์— ํŽ˜์ธํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์น ํ•ด๋„ ๋˜๊ณ  ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•  ๊ตฌ์—ญ์ด ์•„๋‹Œ ๊ณณ์— ํŽ˜์ธํŠธ๋ฅผ ์น ํ•ด๋„ ๋˜์ง€๋งŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ๋กœ ์ •ํ•œ ๊ตฌ์—ญ์€ ์ ์–ด๋„ ํ•œ ๋ฒˆ ํŽ˜์ธํŠธ์น ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‚ฐ์„ ์•„๋ผ๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ์น ํ•  ๊ตฌ์—ญ์„ ์ •ํ–ˆ๋“ฏ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋กค๋Ÿฌ๋กœ ํŽ˜์ธํŠธ์น ์„ ํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ •์ˆ˜ n, m๊ณผ ๋‹ค์‹œ ํŽ˜์ธํŠธ๋ฅผ ์น ํ•˜๊ธฐ๋กœ ์ •ํ•œ ๊ตฌ์—ญ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ์ •์ˆ˜ ๋ฐฐ์—ด section์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ๋กค๋Ÿฌ๋กœ ํŽ˜์ธํŠธ์น ํ•ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ

  • 1 ≤ m ≤ n ≤ 100,000
  • 1 ≤ section์˜ ๊ธธ์ด ≤ n
    • 1 ≤ section์˜ ์›์†Œ ≤ n
    • section์˜ ์›์†Œ๋Š” ํŽ˜์ธํŠธ๋ฅผ ๋‹ค์‹œ ์น ํ•ด์•ผ ํ•˜๋Š” ๊ตฌ์—ญ์˜ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.
    • section์—์„œ ๊ฐ™์€ ์›์†Œ๊ฐ€ ๋‘ ๋ฒˆ ์ด์ƒ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • section์˜ ์›์†Œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

8 4 [2, 3, 6] 2
5 4 [1, 3] 1
4 1 [1, 2, 3, 4] 4

 

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

์ด ๋ฌธ์ œ๋Š” ๊ต‰์žฅํžˆ ์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋กค๋Ÿฌ๋ฅผ ๋ช‡๋ฒˆ ์น ํ•˜๋ฉด ๋˜๋Š”์ง€๋ฅผ ๊ตฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๊ธฐ ๋•Œ๋ฌธ์— end๋ผ๋Š” ๋กค๋Ÿฌ๋กœ ์–ด๋””๊นŒ์ง€ ์น ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ์„ ์–ธํ•˜๊ณ  section๋ฐฐ์—ด์„ ์ˆœํšŒํ–ˆ๋‹ค. ๋งŒ์•ฝ end๋ณด๋‹ค s๊ฐ€ ํฐ ๊ฒฝ์šฐ ์ด์ „์— ๋กค๋Ÿฌ๋กœ ์น ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋„˜์–ด์„œ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ ๋กค๋Ÿฌ์งˆ์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ answer๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ํ•ด๋‹น ๋ถ€๋ถ„์„ ๊ธฐ์ค€์œผ๋กœ m๋งŒํผ ์น ํ•ด์ง€๋ฏ€๋กœ end๋Š” s + m - 1๊นŒ์ง€ ์น ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฑธ ๋ฐ˜๋ณตํ•˜๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐ”๋กœ ํ’€๋ ธ๋‹ค!

 

โŒจ๏ธ ์ฝ”๋“œ

function solution(n, m, section) {
  var answer = 0;

  let end = 0;
  for (const s of section) {
    if (end < s) {
      end = s + m - 1;
      answer += 1;
    }
  }

  return answer;
}