Computer Science/Algorithms

๐Ÿก Two Pointers

metamong 2024. 2. 11.

intro

๐Ÿก two pointers๋ž€ ๋ฐฐ์—ด์—์„œ ์›๋ž˜ ์ด์ค‘ for๋ฌธ์œผ๋กœ O(N^2)์— ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์„ 2๊ฐœ ํฌ์ธํ„ฐ์˜ ์›€์ง์ž„์œผ๋กœ O(N)์— ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด์ค‘ for๋ฌธ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด i=0์ผ๋•Œ์˜ ์ •๋ณด๋ฅผ i=1์ผ ๋•Œ ์ „ํ˜€ ์“ฐ์ด์ง€ ์•Š์ง€๋งŒ, two pointers๋Š” i=0์ผ ๋•Œ์˜ ์ž‘์—…์ด i=1์ผ ๋•Œ์˜ ์ž‘์—…์— ์“ฐ์ธ๋‹ค. ๊ณผ๊ฑฐ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•œ ์ฑ„๋กœ ํšจ์œจ์ ์ด๊ฒŒ index๋ฅผ O(N)์œผ๋กœ ์›€์ง์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ๋ฅผ ํˆฌํฌ์ธํ„ฐ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ณ , ๊ทธ ๋ฐ˜๋Œ€๋„ ๋งŽ๋‹ค. two pointers๋Š” O(N)์œผ๋กœ, ๊ฐ๊ฐ์˜ ๋ชจ๋“  case๋ฅผ ์ผ์ผ์ด ์ ๊ฒ€ํ•  ํ•„์š” ์—†์ด, ์ผ๋ถ€ case๋Š” ์ ํ”„ํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅ.

explanation

๐Ÿก ์œ„์™€ ๊ฐ™์€ ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, a์ผ๋•Œ b~i๋ฅผ ๋Œ๊ณ  / b์ผ ๋•Œ c~i๋ฅผ ๋„๋Š” ํ˜•ํƒœ๋กœ 2์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ๋ˆ๋‹ค๋ฉด O(N^2) naive approach๊ฐ€ ๋˜๋ฉฐ TLE๊ฐ€ ๋˜๋Š” case๊ฐ€ ๋งŽ๋‹ค. ์ด ๋•Œ two-pointer approach๋Š” ๋‘ ๊ฐœ์˜ pointer ์‹œ์ž‘์ ์„ ๋™์‹œ์— a๋กœ ๋‘˜ ์ˆ˜ ์žˆ๊ณ  / ํ•œ ๊ฐœ๋Š” a, ๋‚˜๋จธ์ง€๋Š” i์— ๋‘๊ฑฐ๋‚˜ / ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐฐ์—ด์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์œ„ ๋ฐฐ์—ด์„ two-pointer approach๋กœ ์ ‘๊ทผํ•˜์ž๋ฉด,

: ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ x์™€ y๊ฐ€ ์žˆ๊ณ  ๋™์‹œ์— ์™ผ์ชฝ์‹œ์ž‘์ ์—์„œ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •. x๋Š” a๋ถ€ํ„ฐ i๊นŒ์ง€ ์ญ‰ ์ง„ํ–‰ํ•  ์˜ˆ์ •. x๋Š” a์ผ ๋•Œ y๊ฐ€ a๋ถ€ํ„ฐ d๊นŒ์ง€ ๊ฐ”๋‹ค๊ณ  ํ•˜๋ฉด, ๊ทธ ๋‹ค์Œ x๊ฐ€ b์ผ ๋•Œ y๊ฐ€ ๋‹ค์‹œ a๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์ด๋ฏธ ์ง„ํ–‰ํ•œ d๋ถ€ํ„ฐ y๊ฐ€ ์ง„ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, x๊ฐ€ b์ผ ๋•Œ y๊ฐ€ a, b, c์ธ case๋Š” ๋ฌด์‹œ๋œ๋‹ค. ์ฆ‰, two-pointer approach๋ฅผ ์“ธ ๋•Œ๋Š” ๊ณผ์—ฐ x๊ฐ€ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ด๋ฏธ y๊ฐ€ ์ง€๋‚˜์นœ ๋ถ€๋ถ„์„ ์ƒ๊ด€์•ˆํ•ด๋„ ๋˜๋Š”์ง€ ์ด๋ฅผ ์ •ํ™•ํžˆ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๊ฒฐ๊ตญ x๋Š” a๋ถ€ํ„ฐ i๊นŒ์ง€ O(N), y๋„ a๋ถ€ํ„ฐ i๊นŒ์ง€ O(N)์œผ๋กœ ํ•ฉ O(N+N) ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค(x๊ฐ€ a๋ถ€ํ„ฐ i๊นŒ์ง€ ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ y๋„ a๋ถ€ํ„ฐ i๊นŒ์ง€ ํ•œ๋ฒˆ์— ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค ๋ณด๋ฉด ๊ธฐ์–ตํ•˜๊ธฐ์‰ฝ๋‹ค). ์ƒ๋‹นํžˆ ํšจ์œจ์ ์ธ approach๋กœ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ์ž„์˜๋กœ ๋งž์ถ”๊ฑฐ๋‚˜(ex) ์ •๋ ฌํ•˜๊ฑฐ๋‚˜) x์™€ y์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์•Œ๋งž๊ฒŒ ๋ฐ”๊พธ๊ฑฐ๋‚˜ traversingํ•  ๋ฐฐ์—ด์„ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ํ•ฉ์น˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ technique ์ดํ›„ two-pointer approach๋ฅผ ์‹ค์‹œํ•œ๋‹ค. ์ง์ ‘ ์—ฌ๋Ÿฌ ๋ฌธ์ œ ๋Œ€ํ‘œ ์œ ํ˜•์„ ๋ณด๋ฉด์„œ ์–ด๋–ป๊ฒŒ ํ•ด๋‹น ์ ‘๊ทผ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ต์ˆ™ํ•ด์ง€์ž.

examples

๐Ÿก <BOJ S3 3273 ๋‘ ์ˆ˜์˜ ํ•ฉ>

Q. ์„œ๋กœ ๋‹ค๋ฅธ ์–‘์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ํ•œ ๊ฐœ์˜ array์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์–‘์˜ ์ •์ˆ˜์˜ ํ•ฉ์ด X๊ฐ€ ๋˜๋Š” ์Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ → โ‘  ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ / โ‘ก x๋Š” ๋งจ ์™ผ์ชฝ, y๋Š” ๋งจ ์˜ค๋ฅธ์ชฝ ๋ฐฐ์น˜ / โ‘ข ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ๊ฐ ๊ฐ€๋ฆฌํ‚ค๋Š” ์›์†Œ์˜ ํ•ฉ์ด X๋ณด๋‹ค ํฌ๋‹ค๋ฉด y-=1, X์™€ ๋งž๋‹ค๋ฉด x+=1, y-=1, X๋ณด๋‹ค ์ž‘๋‹ค๋ฉด x+=1

 

๐Ÿก <BOJ S4 2003 ์ˆ˜๋“ค์˜ ํ•ฉ 2 >

Q. n๊ฐœ์˜ ์ˆ˜๋กœ ๋œ ์ˆ˜์—ด์—์„œ i๋ฒˆ์งธ๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆ˜๊นŒ์ง€์˜ ํ•ฉ์ด M์ด ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ(์ˆ˜์—ด์ด๋ฏ€๋กœ array ๋ณ€ํ˜• ๋ถˆ๊ฐ€) → โ‘  x์™€ y ๋ชจ๋‘ ๋ฐฐ์—ด ๋งจ ์™ผ์ชฝ ์œ„์น˜ / โ‘ก x๋Š” ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ ๋ˆ„์ ํ•ฉ์ด M์ด์ƒ์ด ๋˜๊ธฐ ์ „๊นŒ์ง€ y ์ด๋™, ๋ˆ„์ ํ•ฉ์ด M์ด๋ผ๋ฉด ans += 1, ๊ทธ ๋‹ค์Œ x+=1

(๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ A[i] ~ A[j]๋ผ๊ณ  ๊ณ ์ •ํ•ด ๋†“์•˜๊ธฐ์— ๋ˆ„์ ํ•ฉ์œผ๋กœ ๋ฐ”๋กœ ๋Œ€๋†“๊ณ  ํˆฌ ํฌ์ธํ„ฐ ์“ฐ๋ฉด ๋˜๋Š” ์‰ฌ์šด ๋ฌธ์ œ)  

 

๐Ÿก <BOJ S3 2559 ์ˆ˜์—ด >

Q. n๊ฐœ์˜ ์—ฐ์†๋œ ์˜จ๋„๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์—์„œ k๊ฐœ์˜ ๋ถ€๋ถ„์—ฐ์†์ˆ˜์—ด ์ตœ๋Œ€ ๋ˆ„์ ํ•ฉ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ(์ˆ˜์—ด์ด๋ฏ€๋กœ array ๋ณ€ํ˜• ๋ถˆ๊ฐ€) → x์™€ y๋ชจ๋‘ ๋ฐฐ์—ด ๋งจ ์™ผ์ชฝ ์œ„์น˜ /  x๋Š” ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ ๋ˆ„์ ํ•ฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ k๊ฐœ ์ด์ƒ์ด ๋˜๊ธฐ ์ „๊นŒ์ง€ y ์ด๋™ / cnt==K๋ผ๋ฉด ans update์™€ ํ•จ๊ป˜ ๋ˆ„์ ํ•ฉ-=l[x], cnt-=1ํ•˜๊ณ  x ์˜ค๋ฅธ์ชฝ ์ด๋™ (๋งŒ์•ฝ cnt<K์—ฌ์„œ y๊ฐ€ ๋ฐฐ์—ด ์˜ค๋ฅธ์ชฝ ๋๊นŒ์ง€ ๋‹ค ์ด๋™ํ•ด ๋” ์ด์ƒ k๊ฐœ์˜ ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์—†๋‹ค๋ฉด break)

(k๊ฐœ์˜ ์›์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ถ€๋ถ„์—ฐ์†์ˆ˜์—ด ๋ˆ„์ ํ•ฉ์ด๋ผ๊ณ  i, j ํˆฌ ํฌ์ธํ„ฐ ์‚ฌ์šฉ์€ ์ž๋ช…)

 

๐Ÿก <BOJ S4 1940 ์ฃผ๋ชฝ>

Q. ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ‘์˜ท๋“ค ์ค‘ ๋‘ ๊ฐœ ๊ฐ‘์˜ท์„ ๊ณจ๋ผ M์ด ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ (์œ„ 3273 ๋‘ ์ˆ˜์˜ ํ•ฉ๊ณผ ๋™์ผ) (๋‹ค๋งŒ N์ด 15000 ์ดํ•˜๋ผ ํˆฌ ํฌ์ธํ„ฐ ์•ˆ์จ๋„ ๋˜๋Š” ๋ฌธ์ œ)

 

๐Ÿก <BOJ S1 2531 ํšŒ์ „์ดˆ๋ฐฅ + G4 15961 ํšŒ์ „์ดˆ๋ฐฅ>

Q. ํˆฌ ํฌ์ธํ„ฐ ์ค‘ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋Œ€ํ‘œ ์œ ํ˜•. x๊ฐ€ ์ „์ฒด ์ดˆ๋ฐฅ์„ ๋Œ๋ฉด์„œ ๊ณ ์ • ์œˆ๋„์šฐ ๋‚ด์— ์ฟ ํฐ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋จน๋Š” ์ดˆ๋ฐฅ ๊ฐœ์ˆ˜ +1 ๋˜๋Š” +0. ์œˆ๋„์šฐ๊ฐ€ ๋Œ๋ฉด์„œ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์ดˆ๋ฐฅ ์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. x์™€ y๋ชจ๋‘ ์ฒซ ์ดˆ๋ฐฅ๋ถ€ํ„ฐ ์‹œ์ž‘. y๋Š” index 0 ๊ธฐ์ค€ (N-1+k)๊นŒ์ง€ traverse

 

๐Ÿก <BOJ G4 1806 ๋ถ€๋ถ„ํ•ฉ>

Q. ํˆฌ ํฌ์ธํ„ฐ ๋Œ€ํ‘œ ์œ ํ˜•. ๊ณ ์ • ์ˆ˜์—ด์—์„œ x์™€ y ๋ชจ๋‘ ์™ผ์ชฝ index ๋ถ€ํ„ฐ ์‹œ์ž‘. ๋ถ€๋ถ„ํ•ฉ์ด๋ฏ€๋กœ x 0๋ถ€ํ„ฐ ๋Œ๋ฉด์„œ y๊ฐ€ ๋ถ€๋ถ„ํ•ฉ S์ด์ƒ์ด ๋ ๋•Œ๊นŒ์ง€ ์ง„ํ–‰. ์ดํ›„ x๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๊ณ , y๋Š” ํ˜„์žฌ ์œ„์น˜์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ S์ด์ƒ์ด ๋ ๋•Œ๊นŒ์ง€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง„ํ–‰. ํˆฌ ํฌ์ธํ„ฐ ์œ ํ˜•์ธ ์ด์œ ๋Š”, S์ด์ƒ์ธ ๋ถ€๋ถ„ํ•ฉ ์ˆ˜์—ด์—์„œ, ์ƒˆ๋กœ์šด x์ผ๋•Œ  y๊ฐ€ ๊ตณ์ด 0๋ถ€ํ„ฐ ๋Œ ํ•„์š” x. ์–ด์ฐจํ”ผ S๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ. ์ด ๋•Œ length๊นŒ์ง€ ์ถ”๊ฐ€๋กœ update

 

๐Ÿก <BOJ G3 1644 ์†Œ์ˆ˜์˜ ์—ฐ์†ํ•ฉ >

Q. ์†Œ์ˆ˜๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ๋ถ€๋ถ„์—ฐ์†์ˆ˜์—ด ๋ˆ„์ ํ•ฉ์ด N์ธ์ง€ ์•Œ์•„๋ณด๋Š” ๋ฌธ์ œ. ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค ์ฒด๋กœ ์†Œ์ˆ˜๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์œ„ ๋ถ€๋ถ„ํ•ฉ์—์„œ ๊ตฌํ•˜๋Š” ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋™์ผ

 

๐Ÿก <BOJ G5 2470 ๋‘ ์šฉ์•ก / G5 2467 ์šฉ์•ก>

Q. ๋‘ ๋ฌธ์ œ ์ฐจ์ด๋Š” ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์ด ์ •๋ ฌ์ธ์ง€ ์•„๋‹Œ์ง€. ์ •๋ ฌ์„ ํ•ด์•ผ ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ๋‘ ์šฉ์•ก์„ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ€ 0์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์Œ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. x๋Š” ์™ผ์ชฝ, y๋Š” ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ, ๋‘ ์šฉ์•ก์„ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์–‘์ˆ˜๋ผ๋ฉด y๋ฅผ ์™ผ์ชฝ์œผ๋กœ, ์Œ์ˆ˜๋ผ๋ฉด x๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™.

 

๐Ÿก <BOJ G3 2473 ์„ธ ์šฉ์•ก>

Q. ์ด์ œ ๋‘ ์šฉ์•ก์ด ์•„๋‹Œ ์„ธ ์šฉ์•ก์˜ ํ•ฉ์ด 0์— ๊ฐ€๊นŒ์šด ์Œ์„ ์ฐพ๋Š” ๋ฌธ์ œ. N<=5,000์ด์–ด์„œ x ํ•œ๊ฐœ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์žก๊ณ  ๋‚˜๋จธ์ง€ ์šฉ์•ก๋“ค์„ ํˆฌ ํฌ์ธํ„ฐ๋กœ ๋‘ ์šฉ์•ก ํ’€์ด ๊ทธ๋Œ€๋กœ ์ ์šฉํ•ด O(nlogn+n*(n+n))์— ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‚˜, x๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ x,y,z์˜ ์ ๊ฒ€ ์Œ ์ค‘๋ณต ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด y์™€ z๋ฅผ 0~N-1์˜ ๋ฒ”์œ„๊ฐ€ ์•„๋‹Œ, x+1~N-1์˜ ๋ฒ”์œ„๋กœ ์ข€ ๋” ์‹œ๊ฐ„ ๋‹จ์ถ• ๊ฐ€๋Šฅ (์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋™์ผ)

 

๐Ÿก <BOJ G4 13144 List of Unique Numbers>

Q. ๊ณ ์ • ์ˆ˜์—ด์—์„œ ๊ฐ™์€ ์ˆ˜๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์—ฐ์†์ˆ˜์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ. x,y ๋ชจ๋‘ index 0 ์™ผ์ชฝ ์‹œ์ž‘. x๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด์„œ y๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง„ํ–‰ํ•œ, ์ด๋ฏธ ์ค‘๋ณต ์œ ๋ฌด๋ฅผ checkํ•˜์˜€์œผ๋ฏ€๋กœ, ๊ทธ์ € ans์— (y-x) ๊ฐœ์ˆ˜๋งŒ ๋”ํ•ด์ฃผ๊ธฐ. ๊ฒฐ๋ก ์ ์œผ๋กœ x์™€ y๋ชจ๋‘ ํ•œ๋ฐ”ํ€ด๋งŒ ๋Œ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„๋ณต์žก๋„ O(N+N) ํ•ด๊ฒฐ ๊ฐ€๋Šฅ. ํˆฌ ํฌ์ธํ„ฐ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ ค์•ผ ํ•˜๋Š” ๋ฌธ์ œ 


Baaarking Dog

 

 

'Computer Science > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๐Ÿ—ผTower of Hanoi  (0) 2024.04.09
โž•Merge Sort  (0) 2024.04.06
๐Ÿฆœ Pigeonhole Principle  (0) 2024.02.02
๐Ÿ™ƒ Backtracking  (0) 2024.01.18
๐Ÿงฟ Dijkstra's (Shortest Path) Algorithm  (1) 2024.01.14

๋Œ“๊ธ€