๐Ÿ—‚๏ธ 2024.08.16 TIL

Donghyunยท2024๋…„ 8์›” 16์ผ
0

TIL (Today I Learned)

๋ชฉ๋ก ๋ณด๊ธฐ
35/53
post-thumbnail

Python

  1. ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ธฐ๋ฒ•

    ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ธฐ๋ฒ•(Sliding Window Technique)์€ ์—ฐ์†์ ์ธ ๋ถ€๋ถ„ ๋ฐฐ์—ด(subarray)์ด๋‚˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด(substring)์„ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์€ ๋ฐฐ์—ด ๋˜๋Š” ๋ฌธ์ž์—ด์—์„œ ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ์œˆ๋„์šฐ๋ฅผ ์ด๋™์‹œํ‚ค๋ฉด์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ.

    โœ…ย ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ธฐ๋ฒ•์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด

    • ์œˆ๋„์šฐ ์„ค์ •:
      • ๊ณ ์ • ํฌ๊ธฐ ์œˆ๋„์šฐ (Fixed-size Window): ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด์˜ ๋ถ€๋ถ„ ๊ตฌ๊ฐ„์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๊ฐ€๋ณ€ ํฌ๊ธฐ ์œˆ๋„์šฐ (Variable-size Window): ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๋™ํ•˜๋ฉฐ, ๋ฌธ์ œ์— ๋”ฐ๋ผ ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋ฉด์„œ ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋Š”๋‹ค.
    • ์œˆ๋„์šฐ ์ด๋™:
      • ์œˆ๋„์šฐ๋ฅผ ๋ฐฐ์—ด ๋˜๋Š” ๋ฌธ์ž์—ด ์œ„์—์„œ ํ•œ ๋‹จ๊ณ„์”ฉ ์ด๋™์‹œํ‚ค๋ฉฐ, ๋งค๋ฒˆ ์œˆ๋„์šฐ ๋‚ด๋ถ€์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๊ฐฑ์‹ .
      • ์œˆ๋„์šฐ์˜ ์ด๋™์— ๋”ฐ๋ผ ๋‚ด๋ถ€ ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
    • ํšจ์œจ์ ์ธ ๊ณ„์‚ฐ:
      • ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ธฐ๋ฒ•์€ ๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ๋งค๋ฒˆ O(1)O(1) ์‹œ๊ฐ„์— ์œˆ๋„์šฐ์˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, ์ „์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ O(n)O(n)์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

    ์˜ˆ๋ฌธ: https://velog.io/@ehdtkd98/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-ํ• ์ธํ–‰์‚ฌ-ํŒŒ์ด์ฌ

profile
๋ฐ์ดํ„ฐ๋ถ„์„ ๊ณต๋ถ€ ์ผ๊ธฐ~!

0๊ฐœ์˜ ๋Œ“๊ธ€