๐Ÿงฉ Algorithm/๊ฐœ๋… ๋ฐ ์ž๋ฃŒ๊ตฌ์กฐ

[Algorithm] Two-Pointers(ํˆฌ ํฌ์ธํ„ฐ)

devCloud 2024. 11. 15. 19:28
728x90

ํˆฌ ํฌ์ธํ„ฐ

๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ, ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์ด๋‹ค. ์ฃผ๋กœ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’์„ ์ฐพ๊ฑฐ๋‚˜, ๊ตฌ๊ฐ„ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ ๋“ฑ์— ์‚ฌ์šฉ๋œ๋‹ค.

  • ํšจ์œจ์  : ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํƒ์ƒ‰ ์‹œ O(n) ์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ
  • ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„ : ํฌ์ธํ„ฐ ์ด๋™๋งŒ์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ

 

ํˆฌ ํฌ์ธํ„ฐ ๊ฐœ๋…

  • ํฌ์ธํ„ฐ(Pointer) : ๋ฐฐ์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜
  • ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฐฐ์—ด์˜ ์–‘ ๋ ๋˜๋Š” ํŠน์ • ์‹œ์ž‘์ ๊ณผ ๋์ ์— ๋‘๊ณ , ํฌ์ธํ„ฐ๋ฅผ ์ด๋™์‹œํ‚ค๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

 

์‚ฌ์šฉ ์กฐ๊ฑด

  • ๋ฐฐ์—ด์ด ์ •๋ ฌ๋œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์„ ๋•Œ
  • ํŠน์ • ๊ตฌ๊ฐ„์ด๋‚˜ ๋‘ ๊ฐ’์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ

 

๋Œ€ํ‘œ์ ์ธ ๋™์ž‘ ๋ฐฉ์‹

  1. ์‹œ์ž‘๊ณผ ๋ ํฌ์ธํ„ฐ ์‚ฌ์šฉ (์–‘ ๋์—์„œ ์ด๋™)
    • ๋ฐฐ์—ด์˜ ๊ฐ€์žฅ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ๋์— ํฌ์ธํ„ฐ๋ฅผ ๋‘” ๋’ค, ์กฐ๊ฑด์— ๋”ฐ๋ผ ํฌ์ธํ„ฐ๋ฅผ ์ขํ˜€๋‚˜๊ฐ€๋ฉฐ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • ์˜ˆ : ๋‘ ์ˆ˜์˜ ํ•ฉ์ด ํŠน์ • ๊ฐ’์ธ์ง€ ํ™•์ธ
  2. ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ (ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™)
    • ๋‘ ํฌ์ธํ„ฐ๋ฅผ ๋ฐฐ์—ด์˜ ์‹œ์ž‘์ ์— ๋‘๊ณ , ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
    • ์˜ˆ : ํŠน์ • ๊ธธ์ด์˜ ๊ตฌ๊ฐ„์—์„œ ์ตœ๋Œ€/์ตœ์†Œ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ

์ข…๋ฃŒ ์กฐ๊ฑด

  • start ๊ฐ€ end ๋ณด๋‹ค ์ปค์งˆ ๋•Œ, ์ด๋ฏธ ํƒ์ƒ‰ํ•œ ๊ฑธ ๋‹ค์‹œ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.

 

 

ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ์œ ํ˜•

  • ๋‘ ์ˆ˜์˜ ํ•ฉ (Two Sum)
  • ํŠน์ • ๊ตฌ๊ฐ„์˜ ํ•ฉ (Subarray Sum)
  • ๋‘ ๋ฐฐ์—ด ๋น„๊ต
  • ์ตœ์ ์˜ ์ง์ง“๊ธฐ ๋ฌธ์ œ (์˜ˆ: ๊ตฌ๋ช…๋ณดํŠธ ๋ฌธ์ œ)

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ตฌ๋ช…๋ณดํŠธ ๋ฌธ์ œ] ๐Ÿ‘‡

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

[๊ตฌ๋ช…๋ณดํŠธ ๋ฌธ์ œ ํ’€์ด ์ •๋ฆฌ] ๐Ÿ‘‡

 

[Programmers] L2. ๊ตฌ๋ช…๋ณดํŠธ (Python/ํˆฌ ํฌ์ธํ„ฐ)

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.krํ’€์ด ๋ฐฉ๋ฒ•1๏ธโƒฃ ์ •๋ ฌ  (O(nlogโกn)์‹œ๊ฐ„) ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ

dev-cloud.tistory.com

 


 
728x90