[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 6๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(2)

2025. 10. 1. 14:21ยท๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 

โœ… 1. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ํ€ต ์ •๋ ฌ, ํ•ฉ๋ณ‘ ์ •๋ ฌ

  • ํ€ต์ •๋ ฌ, ํ•ฉ๋ณ‘ ์ •๋ ฌ ๋‘ ๊ฐ€์ง€์˜ ๊ณตํ†ต ํŠน์ง•์€ ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์ด ์ ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
  • ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์€ ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์ชผ๊ฐœ์„œ ๋ถ„ํ•  ํ•ด์„œ ์ •๋ ฌ ํ•  ๋•Œ ์“ฐ์ด๋Š” ๊ฐœ๋…์œผ๋กœ ๋ณด๋ฉด ๋  ๋“ฏ

(1) ํ€ต ์ •๋ ฌ

[ ํ”ผ๋ฒ— - pivot, ๋ถ„ํ• ์›์†Œ ]

  • ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„๋ฐฐ์—ด๋กœ ๋ถ„ํ• ํ•  ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•จ.
  • ๋ณดํ†ต ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ํ”ผ๋ฒ—์œผ๋กœ ์ •ํ•˜๊ธด ํ•จ.

  • ํŠน์ • ๋ฐ์ดํ„ฐ(ํ”ผ๋ฒ—)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅ ๋ฐฐ์—ด์„ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„๋ฐฐ์—ด๋กœ ๋ถ„ํ• ํ•˜๊ณ , ๊ฐ ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ๋…๋ฆฝ์ ์œผ๋กœ ํ€ต ์ •๋ ฌ์„ ์ˆœํ™˜์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค. ๋ผ๋Š” ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ ฌ์ž„.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ์ž…๋ ฅ ๋ฐฐ์—ด์—์„œ ์ •๋ ฌ ๊ธฐ์ค€์œผ๋กœ ์‚ผ๊ณ  ์‹ถ์€ ์š”์†Œ๋ฅผ ํ”ผ๋ฒ—์œผ๋กœ ๋ณด๊ณ  ํ•ด๋‹น ํ”ผ๋ฒ— ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅ ๋ฐฐ์—ด์„ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์™ผ์ชฝ ๋ถ€๋ถ„ ๋ฐฐ์—ด(์™ผ์ชฝ ๊ทธ๋ฃน), ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„ ๋ฐฐ์—ด(์˜ค๋ฅธ์ชฝ ๊ทธ๋ฃน)๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋˜ํ•œ, ์™ผ์ชฝ ๊ทธ๋ฃน ์ •๋ ฌ๊ณผ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฃน์˜ ์ •๋ ฌ์€ ๋”ฐ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋ฉฐ, ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ๋„ ๋˜‘๊ฐ™์ด ์ •๋ ฌ ๊ธฐ์ค€์ด ๋˜๋Š” ํ”ผ๋ฒ—์„ ์„ ํƒํ•˜์—ฌ ํ•ด๋‹น ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ๋ถ„ํ• ์ด ๋˜๊ณ  ์ •๋ ฌ์ด ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด ํ€ต ์ •๋ ฌ์ด๋‹ค.
  • ์ฆ‰, ์ด๋Ÿฌํ•œ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ์ฐพ๋Š” ๊ณผ์ •์ด "ํ”ผ๋ฒ—์ด ์ œ์ž๋ฆฌ๋ฅผ ์žก๋„๋ก ํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹" ์œผ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ํ‰๊ท ์ ์œผ๋กœ ๊ฐ€์žฅ ์ข‹์€ ์„ฑ๋Šฅ์˜ ๋น„๊ต ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ, O(nlogn) ์ด๋‹ค.

(2) ํ€ต ์ •๋ ฌ - ๋ถ„ํ•  ๊ณผ์ • 1

  • ๋ฐฐ์—ด์„ ํ”ผ๋ฒ— ๊ธฐ์ค€์œผ๋กœ ๋ถ€๋ถ„ ๋ฐฐ์—ด๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ณผ์ •์„ ๋ถ„ํ•  ๊ณผ์ •์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  • (1) ๋ฐฐ์—ด์˜ ์ œ์ผ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ํ”ผ๋ฒ—์œผ๋กœ ๊ฐ€์ •์„ ํ•˜๋ฉฐ, ํ”ผ๋ฒ—์˜ index = 0, L index = 1 , R index = 7 ๋กœ ์ •์˜๋ฅผ ํ•œ๋‹ค.
  • (2) ํ”ผ๋ฒ— ๋ฐ์ดํ„ฐ์ธ 54๋ฅผ ๊ธฐ์ค€์œผ๋กœ L ์€ ์ธ๋ฑ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด์„œ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ๊ฐ’์„ ์ฐพ๊ฒŒ ๋˜๊ณ , R ์€ ๋ฐ˜๋Œ€๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋‚ด๋ฆฌ๋ฉด์„œ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ฒŒ ๋œ๋‹ค. ์ฆ‰, 34 -> 41 -> 89 ( ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ๊ฐ’ ) ์—์„œ ๋ฉˆ์ถ”๊ฒŒ ๋˜๋ฉฐ L ์€ 89์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜๊ณ , R ์€ ํ”ผ๋ฒ—์˜ ๋ฐ์ดํ„ฐ์ธ 54 ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ธ 23 ์›๋ž˜ ์œ„์น˜ํ•˜๋Š” ๊ณณ์— ์žˆ๊ฒŒ ๋œ๋‹ค.
  • (3) ํ˜„์žฌ L ์˜ ์œ„์น˜ 89 ์™€ R ์˜ ์œ„์น˜ 23 ์˜ ์œ„์น˜๋ฅผ ์„œ๋กœ ๋ณ€๊ฒฝ์„ ํ•˜๊ฒŒ ๋˜๋ฉฐ, L ๊ณผ R ์ด ๋˜ ๋‹ค์‹œ ์ด๋™ํ•˜๋ฉด์„œ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ํฐ ์ˆ˜์™€ ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ๊ฒŒ ๋˜๋ฉด ๊ทธ ์ž๋ฆฌ์— ๋ฉˆ์ถ”๊ณ  ๋˜ ๋‹ค์‹œ ์„œ๋กœ ๊ตํ™˜์„ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค.
  • (4) L ๊ณผ R ์˜ ์ธ๋ฑ์Šค๊ฐ€ ๊ต์ฐจ๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„ ์ฆ‰, L(index) > R(index) ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” R ์˜ ๊ฐ’๊ณผ ํ”ผ๋ฒ— ๊ฐ’์„ ์„œ๋กœ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•˜๊ฒŒ ๋˜๊ณ  ์ •๋ ฌ์ด ์ข…๋ฃŒ๊ฐ€ ๋˜๊ฒŒ ๋œ๋‹ค.
  • (5) ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ๋ถ€๋ถ„๋ฐฐ์—ด์€ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ๊ฐ’ ์˜ค๋ฅธ์ชฝ์€ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ๊ฐ’์ด ๋˜๊ฒŒ๋œ๋‹ค.

(3) ํ€ต ์ •๋ ฌ - ๋ถ„ํ•  ๊ณผ์ • 2

  • ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ L ๊ณผ R ์ด ์ด๋™ํ•˜๋ฉด์„œ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ํฐ ๊ฐ’๊ณผ ์ž‘์€ ๊ฐ’์„ ์ฐพ์œผ๋ฉฐ ์„œ๋กœ ์œ„์น˜๋ฅผ ๊ตํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ L ์ด R ๋ณด๋‹ค ํฐ ์ƒํƒœ ์ฆ‰, L > R ์ƒํƒœ์ด๋ฏ€๋กœ, R ์˜ ๊ฐ’์ด ํ”ผ๋ฒ—๊ณผ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ฒŒ ๋˜๋ฉด์„œ ๋ถ„ํ• ์ด ๋˜๊ฒŒ ๋œ๋‹ค.

(4) ํ€ต ์ •๋ ฌ - ์ „์ฒด์ ์ธ ์ˆ˜ํ–‰ ๊ณผ์ •

  • ์•ž์„  ๋ถ„ํ•  ๊ณผ์ •์„ ํ†ตํ•ด ํ”ผ๋ฒ—์ด ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ถ„ํ•  ๊ณผ์ •์„ ํ†ตํ•ด ์–ป์–ด๋‚ธ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„๋ฐฐ์—ด์—์„œ ๋˜ ๋‹ค์‹œ ๋ถ„ํ•  ๊ณผ์ •์„ ํ†ตํ•ด ํ”ผ๋ฒ—์ด ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด ์ตœ์ข…์ ์œผ๋กœ ์ •๋ ฌ ๋œ ๋ฐฐ์—ด์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

  • (1) ๊ธฐ์ค€์ด ๋˜๋Š” ํ”ผ๋ฒ— 54 ๋ฅผ ๋ถ„ํ•  ๊ณผ์ •์„ ํ†ตํ•ด ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„๊ฐ€๊ฒŒ ๋˜๋ฉฐ, ์˜ค๋ฅธ์ชฝ๊ณผ ์™ผ์ชฝ ๋ถ€๋ถ„๋ฐฐ์—ด์ด ์ƒ๊ธฐ๊ฒŒ ๋จ.
  • (2) ํ”ผ๋ฒ— 16์„ ๊ธฐ์ค€์œผ๋กœ L ์€ 34 ์—์„œ ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค R ์€ 16 ๋ณด๋‹ค ์ž‘์€ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ์›๋ž˜ ์œ„์น˜์—์„œ ๊ณ ์ •์ด ๋˜๊ฒŒ ๋œ๋‹ค.
  • (3) ํ”ผ๋ฒ— 34 ๊ธฐ์ค€์œผ๋กœ L ์€ 41 ์— ๋ฉˆ์ถ”๊ณ  R ์€ 23 ์— ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค ์„œ๋กœ ๊ตํ™˜์„ ํ•˜๊ฒŒ ๋˜์–ด 34, 23, 41, 52 ํ˜•ํƒœ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ดํ›„, L > R ํ˜•ํƒœ๊ฐ€ ๋˜๋ฏ€๋กœ 23 ๊ณผ 34๋Š” ๊ตํ™˜์ด ๋˜๋ฉฐ 23, 34, 41, 52 ํ˜•ํƒœ๊ฐ€ ๋˜๊ฒŒ ๋œ๋‹ค.
  • (4) 23์€ ๋ถ„ํ•  ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ 23์ด ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ๊ฒŒ ๋จ.
  • (5) 41 ๋˜ํ•œ L ๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— 41์ด ์œ„์น˜๊ฐ€ ๊ณ ์ •์ด ๋จ
  • (6) 52 ๋˜ํ•œ L ๋งŒ ์กด์žฌํ•˜๊ธฐ ๋–„๋ฌธ์— 52์ด ์œ„์น˜๊ฐ€ ๊ณ ์ •์ด ๋จ.
  • (7) ~ (8) 67, 89 ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณ ์ •์ด ๋จ.

(5) ํ€ต ์ •๋ ฌ - ํ€ต ์ •๋ ฌ์˜ ํŠน์ง•

[ ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ]

  • ๋ถ„ํ• : ์ •๋ ฌํ•œ n ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ”ผ๋ฒ—์„ ์ค‘์‹ฌ์œผ๋กœ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„๋ฐฐ์—ด๋กœ ๋ถ„ํ• 
  • ์ •๋ณต: ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด ๊ฐ๊ฐ์— ๋Œ€ํ•ด ํ€ต ์ •๋ ฌ์„ ์ˆœํ™˜์ ์œผ๋กœ ์ ์šฉํ•˜์—ฌ ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ์ •๋ ฌ
  • ๊ฒฐํ•ฉ: ํ•„์š” ์—†์Œ

[ ์„ฑ๋Šฅ ]

  • ๋ถ„ํ•  ๊ณผ์ •์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ - O(n)
  • ํ‰๊ท  ์ˆ˜ํ–‰ ์‹œ๊ฐ„ - O(nlogn) : ํ”ผ๋ฒ— ์„ ํƒ์˜ ์ž„์˜์„ฑ๋งŒ ๋ณด์žฅ๋˜๋ฉด ํ‰๊ท  ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋ณด์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ
  • ์ตœ์„  ์ˆ˜ํ–‰ ์‹œ๊ฐ„ - O(nlogn)
  • ์ตœ์•… ์ˆ˜ํ–‰ ์‹œ๊ฐ„ - O(n^2): ํ•ด๋‹น ์ตœ์•…์˜ ๊ฒฝ์šฐ๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์ •๋ ฌ ๋œ ๊ฒฝ์šฐ๋กœ ํ”ผ๋ฒ—์ด ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์ง€์ • ํ•œ ๊ฒฝ์šฐ ํ•ญ์ƒ ์ตœ๋Œ€๊ฐ’์ด๋‚˜ ์ตœ์†Ÿ๊ฐ’์ด ๋˜๋Š” ๊ฒฝ์šฐ ์ด๋ฏ€๋กœ, ์ตœ์•…์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๋  ์ˆ˜ ์žˆ์Œ.

(6) ํ•ฉ๋ณ‘ ์ •๋ ฌ

  • ๋™์ผํ•œ ํฌ๊ธฐ์˜ ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„๋ฐฐ์—ด๋กœ ๋ถ„ํ• ํ•˜๊ณ , ๊ฐ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ์ˆœํ™˜์ ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„, ์ •๋ ฌ๋œ ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ํ•ฉ๋ณ‘ํ•ด์„œ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ์ •๋ ฌ ๋ฐฉ์‹์ด๋‹ค.
  • ์‰ฝ๊ฒŒ๋งํ•ด, ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ๋‘๊ฐœ๋กœ ๋ถ„ํ• ํ•œ ๋’ค ๊ฐ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ณ  ์ดํ›„ ๋‘ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ํ•ฉ๋ณ‘ํ•˜๋ฉด์„œ ์ •๋ ฌ
  • ์ฆ‰, ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ์ž๋ฅด๋ฏ€๋กœ ๊ฐ€์šด๋ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž๋ฅด๋Š” ๋А๋‚Œ์ด ๋  ์ˆ˜ ์žˆ์Œ.

(6) ํ•ฉ๋ณ‘ ์ •๋ ฌ - ์ „์ฒด์ ์ธ ์ˆ˜ํ–‰ ๊ณผ์ •

  • (1) ๋ฐ˜์”ฉ ์ชผ๊ฐœ๋ฉด์„œ ๋” ์ด์ƒ ์ชผ๊ฐœ์ง€์ง€ ์•Š์„ ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต ๋ถ„ํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
  • (2) ์ดํ›„ ํ•ฉ๋ณ‘ ๊ณผ์ •์—์„œ ๋‘ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐ˜๋ณต ํ•ฉ๋ณ‘์„ ํ†ตํ•ด ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰, ํ•ต์‹ฌ์€ ๋ถ„ํ• ์ด ๋˜์–ด ์ชผ๊ฐœ์ง„ ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด๋กœ ์ฆ‰, ํ•ฉ๋ณ‘ํ•˜๋Š” ๊ณผ์ •์ด ๋  ์ˆ˜ ์žˆ์Œ.

(7) ํ•ฉ๋ณ‘ ์ •๋ ฌ - ํ•ฉ๋ณ‘ ๊ณผ์ •

  • ํ•ฉ๋ณ‘ ๊ณผ์ •์€ ์ •๋ ฌ๋œ ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋‹ค.

# ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด
34 41 54 89 | 16 23 52 67

# ํ•ฉ๋ณ‘ ๊ณผ์ •
34 , 16 ๋น„๊ต => 16
34 , 23 ๋น„๊ต => 23
34 , 52 ๋น„๊ต => 34
52 , 41 ๋น„๊ต => 41
52 , 54 ๋น„๊ต => 52
54 , 67 ๋น„๊ต => 54
67 , 89 ๋น„๊ต => 67
๋‚จ๋Š” ๊ฐ’ => 89

# ๊ฒฐ๊ณผ
C[n] = 16, 23, 34, 41, 52, 54, 67, 89
  • ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์€ ์•ž์—์„œ ์ด๋ฏธ ์ •๋ ฌ์ด ๋œ ์ƒํƒœ ์ด๋ฏ€๋กœ, ๊ฐ ๋ถ€๋ถ„๋ฐฐ์—ด์˜ ์•ž ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์„œ๋กœ ๋น„๊ต๋ฅผ ํ•˜๋ฉด์„œ 
  • 16๊ณผ 34๋ฅผ ๋น„๊ต ํ›„ ์ž‘์€ ๊ฐ’์€ C[n] ๋ฐฐ์—ด์— ๋‹ด๊ณ  ์•ž ๋ถ€ํ„ฐ ๋‚จ๋Š” ์ˆ˜ ๋ฐ˜๋ณต ๋น„๊ต ํ›„ ๋ฐฐ์—ด์— ๋‹ด๋Š” ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•จ.

(8) ํ•ฉ๋ณ‘ ์ •๋ ฌ - ํŠน์ง•

  • ํ•ฉ๋ณ‘ ์ •๋ ฌ๋„ ํ€ต ์ •๋ ฌ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
  • ๋ถ„ํ• : ์ •๋ ฌํ•œ n ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ n/2 ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๋Š” ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด๋กœ ๋ถ„ํ• 
  • ์ •๋ณต: ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์— ๋Œ€ํ•ด ํ•ฉ๋ณ‘ ์ •๋ ฌ์„ ๊ฐ๊ฐ ์ˆœํ™˜์ ์œผ๋กœ ์ ์šฉํ•˜์—ฌ ์ •๋ ฌ
  • ํ•ฉ๋ณ‘: ์ •๋ ฌ๋œ ๋‘ ๋ถ€๋ถ„๋ฐฐ์—ด์„ ํ•ฉ๋ณ‘ํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋งŒ๋“ฆ

[ ์„ฑ๋Šฅ ]

  • ์ตœ์„ , ์ตœ์•…, ํ‰๊ท  ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ๋ชจ๋‘ O(nlogn) ์˜ ํŠน์ง•์„ ๋„๊ณ  ์žˆ์Œ.
  • ๊ธฐ์กด์˜ ์„ ํƒ ์ •๋ ฌ, ๋ฒ„๋ธ” ์ •๋ ฌ ๋“ฑ์€ O(n^2) ์ด์—ˆ์ง€๋งŒ, ํ•ฉ๋ณ‘์ด๋‚˜ ํ€ต ์ •๋ ฌ์€ ๋ชจ๋‘ O(nlogn) ์œผ๋กœ ์„ฑ๋Šฅ์ด ๋” ๋›ฐ์–ด๋‚จ

โœ… 2. ์ˆœ์ฐจํƒ์ƒ‰, ์ด์ง„ํƒ์ƒ‰

(1) ํƒ์ƒ‰ ์ด๋ž€?

  • ํƒ์ƒ‰์ด๋ž€ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์—์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค.
  • ํƒ์ƒ‰์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์ˆœ์ฐจ ํƒ์ƒ‰, ์ด์ง„ ํƒ์ƒ‰, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • ๊ฐ๊ฐ ์„ฑ๋Šฅ์€ ์ˆœ์ฐจ ํƒ์ƒ‰ O(n) / ์ด์ง„ ํƒ์ƒ‰ O(logn) / ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ํ‰๊ท  O(logn) ์ตœ์•… O(n) ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.

(2) ์ˆœ์ฐจ ํƒ์ƒ‰

  • ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

  • ์˜ˆ์‹œ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๋ฐฐ์—ด์—์„œ 30์˜ ๊ฐ’์„ ์ฐพ๋Š” ๊ณผ์ •์—์„œ ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด ์ˆœ์ฐจ ํƒ์ƒ‰์ด๋‹ค.

(3) ์ˆœ์ฐจ ํƒ์ƒ‰ - ํŠน์ง•

[ ํƒ์ƒ‰ ์„ฑ๋Šฅ ]

  • ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๋น„๊ต ํšŸ์ˆ˜๋Š” n ๋ฒˆ, ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๋น„๊ต ํšŸ์ˆ˜๋Š” 1 ~ n ๋ฒˆ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฆ‰, ์ž…๋ ฅ ํฌ๊ธฐ n ์˜ ๋น„๋ก€ํ•˜๋Š” ๋งŒํผ์˜ ์„ฑ๋Šฅ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ O(n) ์ด ๋  ์ˆ˜ ์žˆ์Œ.
  • ๊ฒฐ๋ก ์€ ์ˆœ์ฐจ ํƒ์ƒ‰์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์„ฑ๋Šฅ์ด ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ์Œ.

[ ์ˆœ์ฐจ ํƒ์ƒ‰ ํŠน์ง• ]

  • ์ˆœ์ฐจ ํƒ์ƒ‰์€ ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ(๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ํ‚ค๊ฐ’๊ณผ ๊ด€๋ จํ•ด์„œ ์•„๋ฌด๋Ÿฐ ์ˆœ์„œ ์—†์ด ๋‹จ์ˆœํ•˜๊ฒŒ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ ๋˜๋Š” ๊ฒฝ์šฐ
  • ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์ˆœ์ฐจ ํƒ์ƒ‰์ด ์ ํ•ฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ์ด ๋œ ์ƒํƒœ๋กœ ๋“ค์–ด์˜จ๋‹ค๋ฉด ์ด์ง„ ํƒ์ƒ‰์ด ํšจ์œจ์ ์ž„.

(4) ์ด์ง„ ํƒ์ƒ‰

  • ์ •๋ ฌ๋œ ์ž…๋ ฅ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ค„์—ฌ๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ฆ‰, ์ด์ง„ ํƒ์ƒ‰์˜ ์กฐ๊ฑด์€ ๋ฐ˜๋“œ์‹œ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์ด์–ด์•ผ๋งŒ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž„.
  • ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

[ ํƒ์ƒ‰ ๋ฐฉ๋ฒ• ]

  • ๋ฐฐ์—ด์˜ ๊ฐ€์šด๋ฐ ๊ฐ’๊ณผ ํƒ์ƒ‰ํ‚ค๋ฅผ ๋น„๊ตํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ฆ‰, ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ๊ฐ€์šด๋ฐ ๊ฐ’์ธ A[Mid] ์™€ ํƒ์ƒ‰ํ‚ค๋ฅผ ๋น„๊ต๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. ( ํƒ์ƒ‰ํ‚ค = ๋‚ด๊ฐ€ ์ฐพ๊ณ ์žํ•˜๋Š” ๋ฐ์ดํ„ฐ )

  • left index = ๋ฐฐ์—ด ๋งจ ์•ž , right index ๋ฐฐ์—ด ๋งจ ๋ ์„ ์˜๋ฏธ.
  • left index ์™€ right index ๋ฅผ ๋”ํ•œ ๊ฐ’์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ณ , ํ•ด๋‹น ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์— 2๋ฅผ ๋‚˜๋ˆ„์–ด ๊ฐ€์šด๋ฐ๋ฅผ ๊ตฌํ•จ.
  • ๊ฐ€์šด๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด, ํ•ด๋‹น ๋ฐ์ดํ„ฐ์™€ ํƒ์ƒ‰ํ‚ค(๋‚ด๊ฐ€ ์ฐพ๊ณ ์žํ•˜๋Š” ๋ฐ์ดํ„ฐ) ๋ฅผ ๋น„๊ตํ•˜์—ฌ, ํƒ์ƒ‰ํ‚ค๊ฐ€ A[Mid] ๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ left , ํƒ์ƒ‰ํ‚ค๊ฐ€ A[Mid] ๋ณด๋‹ค ํด ๊ฒฝ์šฐ right ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰, ํƒ์ƒ‰์„ ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค ๋Œ€์ƒ ์›์†Œ(๋ฐ์ดํ„ฐ)์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ˆ๋ฐ˜์”ฉ ๊ฐ์†Œ๊ฐ€ ๋˜๋Š” ํŠน์ง•์ด ์žˆ์Œ.
  • ๋˜ํ•œ, key ๊ฐ’์ด A[Mid] ๊ฐ€์šด๋ฐ ๊ฐ’๊ณผ ๊ฐ™์œผ๋ฉด ํƒ์ƒ‰์ด ๋ฐ”๋กœ ์„ฑ๊ณต ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒจ

(4) ์ด์ง„ ํƒ์ƒ‰ - ํƒ์ƒ‰ ๊ณผ์ •

  • ํƒ์ƒ‰ํ‚ค ๊ฐ’์ด 35 ๋ผ ๊ฐ€์ •ํ•˜๊ณ  ์ด์ง„ ํƒ์ƒ‰ ์ง„ํ–‰
  • ๋จผ์ € left index 0 ๊ณผ right indext 8 ๋ฅผ ๋”ํ•ด์„œ 2๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด ๊ฐ€์šด๋ฐ index 4 ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ํ•ด๋‹น index 4 ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 30์ด ๋“ค์–ด๊ฐ€์žˆ๊ณ , ํƒ์ƒ‰ํ‚ค 35 ์™€ ๋น„๊ต๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด 35๊ฐ€ ๋” ํฌ๊ธฐ ๋•Œ๋ฌธ์— right ๋ฅผ ๋ณด๊ฒŒ๋œ๋‹ค.
  • right ์—์„œ ๋˜ ์ด์ง„ ํƒ์ƒ‰์„ ํ†ตํ•ด ์ ˆ๋ฐ˜์„ ์ค„์ด๊ณ  ํƒ์ƒ‰ํ‚ค์™€ ๊ฐ€์šด๋ฐ index(5+8/2=6) ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฐธ๊ณ ๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•˜์„ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ.

(4) ์ด์ง„ ํƒ์ƒ‰ - ํŠน์ง•

[ ์„ฑ๋Šฅ ]

  • ํ•œ ๋ฒˆ ํƒ์ƒ‰ํ•  ๋•Œ๋งˆ๋‹ค ํƒ์ƒ‰ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ˆ๋ฐ˜์”ฉ ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(logn) ์„ฑ๋Šฅ์„ ๊ฐ€์ง.

[ ํŠน์ง• ]

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
  • ์‚ฝ์ž…/์‚ญ์ œ ์—ฐ์‚ฐ ์‹œ ์ •๋ ฌ ์ƒํƒœ์˜ ์œ ์ง€๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์ด๋™์ด ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ? ์ด ์žˆ์Œ.
  • ์ฆ‰, ์‚ฝ์ž…/์‚ญ์ œ์™€ ๊ฐ™์€ ๋™์  ์—ฐ์‚ฐ์ด ๋งŽ์€ ์‘์šฉ์—๋Š” ๋ถ€์ ํ•ฉ ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋งค๋ฒˆ ์‚ฝ์ž… ์‚ญ์ œ์™€ ๊ฐ™์ด ๋ฐฐ์—ด์ด ๋ณ€๊ฒฝ์ด ๋˜๋ฉด ์ •๋ ฌ์„ ๋งค๋ฒˆ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Œ.
  • ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ฐฐ์—ด์ด ์•„๋‹Œ ํŠธ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์„œ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์Œ.

โœ… 3. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ

  • ๊ฐ ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํ‚ค๊ฐ’์€ ๊ทธ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’๋ณด๋‹ค ์ž‘๋‹ค.
  • ๊ฐ ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํ‚ค๊ฐ’์€ ๊ทธ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’๋ณด๋‹ค ํฌ๋‹ค.
  • ์ด ๋‘๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํŠธ๋ฆฌ๋ฅผ ์ด์ง„ ํŠธ๋ฆฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

(1) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ - ํƒ์ƒ‰ ์—ฐ์‚ฐ

  • ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ๋ถ€ํ„ฐ ํ‚ค๊ฐ’์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ฒŒ ๋จ.
  • ์ฆ‰, 44 ์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ฒ ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๊ฐ ๋…ธ๋“œ๋ณด๋‹ค ํฌ๋ฉด ์˜ค๋ฅธ์ชฝ ์ž‘์œผ๋ฉด ์™ผ์ชฝ์œผ๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์ฐพ๊ฒŒ ๋˜๋Š” ์›๋ฆฌ์ž„.

(2) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ - ์‚ฝ์ž… ์—ฐ์‚ฐ

  • ๊ธฐ์กด์˜ ๋ฐฐ์—ด ์ด์ง„ ํƒ์ƒ‰ ๋ฐฉ์‹์€ ์‚ฝ์ž… ์‚ญ์ œ์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์‚ฝ์ž…๊ณผ ์‚ญ์ œ์— ๋Œ€ํ•ด ๋งค๋ฒˆ ์ •๋ ฌ์„ ํ•ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ํ•ฉํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋ฐฉ์‹์€ ์ด๊ฑธ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์Œ.
  • ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ์‚ฝ์ž… ์—ฐ์‚ฐ์€ ์‚ฝ์ž…ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•œ ํ›„, ํƒ์ƒ‰์ด ์‹คํŒจํ•œ ์œ„์น˜์— ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์ž์‹ ๋…ธ๋“œ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ž„.

  • ์ฆ‰, 25 ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์—์„œ 35 -> 30 -> 15 -> 22 ์ธ ๊ธฐ์กด ๋…ธ๋“œ๋“ค์„ ํƒ€๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋•Œ ๋” ์ด์ƒ ๋…ธ๋“œ๊ฐ€ ์—†๋Š”๋ฐ 25๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ์—๋Š” ํƒ์ƒ‰์ด ์‹คํŒจํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ‘์— 25 ๋…ธ๋“œ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰, ์‚ฝ์ž… ์‹œ 25 ์ˆซ์ž๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์ฆ์„ ํ•œ ๋’ค ์—†๋‹ค๊ณ  ํŒ๋‹จํ•œ ๋’ค ์‚ฝ์ž…์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ.
  • ๊ฒฐ๋ก ์€ ํƒ์ƒ‰์ด ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๊ณ  ํŒ๋‹จ์ด ๋˜๋ฏ€๋กœ ์‚ฝ์ž… ์—†์ด ์ข…๋ฃŒ๊ฐ€ ๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ.

(3) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ - ์‚ญ์ œ ์—ฐ์‚ฐ

  • ํ›„์†์ž ๋…ธ๋“œ successor, ๊ณ„์Šน์ž ๋…ธ๋“œ: ์–ด๋–ค ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’ ๋ฐ”๋กœ ๋‹ค์Œ ํ‚ค๊ฐ’์„ ๊ฐ–๋Š” ๋…ธ๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ํ›„์†์ž ๋…ธ๋“œ

  • ๋˜ํ•œ, ํŠธ๋ฆฌ์—์„œ ์ด์ง„ ํƒ์ƒ‰์€ ์‚ญ์ œ๋˜๋Š” ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•ด์„œ ์ฒ˜๋ฆฌ
  • ์ฆ‰, ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์‚ญ์ œ๋˜๋Š” ๋ฐฉ์‹์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์“ฐ์ž„.

[ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ(๋ฆฌํ”„ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ) ]

  • ๋‚จ๋Š” ๋…ธ๋“œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์œ„์น˜ ์กฐ์ ˆ์ด ๋ถˆํ•„์š”ํ•ด, ๋‹จ์ˆœ ์‚ญ์ œ๋ฅผ ํ•˜๋ฉด ํ•ด๊ฒฐ์ด ๋œ๋‹ค.
  • ์œ„์™€ ๊ฐ™์ด 22 ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ ๋‹จ์ˆœํžˆ 22 ๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ๋œ๋‹ค.

[ ์ž์‹ ๋…ธ๋“œ๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ ]

  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์‚ญ์ œ๋˜๋Š” ๋…ธ๋“œ์˜ ์œ„์น˜๋กœ ์˜ฌ๋ฆฌ๋ฉด์„œ ์„œ๋ธŒํŠธ๋ฆฌ ์ „์ฒด๋„ ๋”ฐ๋ผ ์˜ฌ๋ฆฌ๊ฒŒ ๋จ,
  • ์œ„์™€ ๊ฐ™์ด 30 ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, 30 ๋…ธ๋“œ๋ฅผ ์ œ๊ฑฐ ํ•œ ๋’ค 15 ์™€ ๊ทธ ์„œ๋ธŒํŠธ๋ฆฌ๋ฅผ ๊ธฐ์กด 30 ์˜ ์ž๋ฆฌ๋กœ ์˜ฌ๋ฆฌ๊ฒŒ ๋จ

[ ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ์ธ ๊ฒฝ์šฐ ]

  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์‚ญ์ œ๋˜๋Š” ๋…ธ๋“œ์˜ ํ›„์†์ž ๋…ธ๋“œ๋ฅผ ์‚ญ์ œ๋˜๋Š” ๋…ธ๋“œ์˜ ์œ„์น˜๋กœ ์˜ฌ๋ฆฌ๊ฒŒ ๋œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ํ›„์†์ž ๋…ธ๋“œ๋ฅผ ์‚ญ์ œ๋˜๋Š” ๋…ธ๋“œ๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค์‹œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋จ.

(4) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ - ์„ฑ๋Šฅ

  • root ๋…ธ๋“œ๋กœ ๋ถ€ํ„ฐ ํƒ์ƒ‰ ์ฆ‰, ๋‚ด๋ ค์˜ค๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค๊ฐ’ ๋น„๊ต ํšŸ์ˆ˜์— ๋น„๋ก€ํ•˜๊ฒŒ ๋จ.
  • ์ฆ‰, ํŠธ๋ฆฌ์˜ ๋†’์ด h -> O(h) ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ฒŒ ๋จ. ( ์ตœ๋Œ€ ๋†’์ด O(logn) , ์ตœ์†Œ ๋†’์ด O(n) )
  • ๊ฒฐ๊ตญ ํŠธ๋ฆฌ์˜ ๋†’์ด์— ๋”ฐ๋ผ ์ด์ง„ ํƒ์ƒ‰์˜ ๋Œ€ํ•œ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ.
  • ๊ทธ๋ฆฌ๊ณ  ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋ฅผ ๋นˆ๋ฒˆํžˆ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ๊ฒฝ์‚ฌ ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ‰๊ท  ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์•„๋‹Œ ์ตœ์•… ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๋  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ์„ ํ•ด๊ฒฐ ์ฆ‰, ํ‰๊ท  ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ท ํ˜• ํƒ์ƒ‰ ํŠธ๋ฆฌ๋„ ์กด์žฌํ•จ.

'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต > ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 4๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(2)  (0) 2025.09.19
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 3๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(1)  (0) 2025.09.17
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 10๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(2)  (0) 2025.09.15
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 9๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(1)  (0) 2025.09.08
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 5๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(1)  (0) 2025.09.04
'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 4๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(2)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 3๊ฐ• - ์ž๋ฃŒ๊ตฌ์กฐ(1)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 10๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(2)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 9๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(1)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (181)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (41)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก  (9)
        • ๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ (6)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
      • ๐Ÿ› ๏ธBackend (64)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (23)
        • ๐ŸŒณSpring (13)
        • โš™๏ธC (8)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (64)
      • ์ •๋ณด (2)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Spring Framework
    C
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    Python
    C ์–ธ์–ด
    ์ž…์ถœ๋ ฅ
    ์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 
    C์–ธ์–ด
    ์ž๋ฐ”
    ํŒŒ์ด์ฌ
    ์ž๋ฃŒ๊ตฌ์กฐ
    Java
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ๋ฐฉํ†ต๋Œ€
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ๋ฐฉ์†ก๋Œ€
    ํ•จ์ˆ˜
    ๋ฐฐ์—ด
    spring
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 6๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(2)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”