Skip to content

๐Ÿง Algorithm - Algorithm Typeย #13

@4BFC

Description

@4BFC

๐Ÿง Algorithm - Algorithm Type

  • ๐Ÿง 

Reference

๐Ÿ”— Link ๐Ÿ”— [์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ฆ„](https://# "์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ฆ„/์ข…๋ฅ˜")
  ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
  
  ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ๋•Œ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ์ค€์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ๋•Œ ์œ ์šฉํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค:
  
  1. ์‹œ๊ฐ„ ๋ณต์žก๋„
  ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ(N): ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ์ค‘์š”ํ•œ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, N์ด ๋งค์šฐ ํฌ๋‹ค๋ฉด O(N^2) ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ๋ฒ„๋ธ” ์ •๋ ฌ์ด๋‚˜ ์‚ฝ์ž… ์ •๋ ฌ์€ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„:
  ๋ฒ„๋ธ” ์ •๋ ฌ: O(N^2) (์ž‘์€ ๋ฐ์ดํ„ฐ๋‚˜ ์ด๋ฏธ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ ์ œ์™ธ)
  ์‚ฝ์ž… ์ •๋ ฌ: O(N^2) (๊ฑฐ์˜ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉ)
  ์„ ํƒ ์ •๋ ฌ: O(N^2)
  ํ€ต ์ •๋ ฌ: ํ‰๊ท  O(N log N) (์ตœ์•…์˜ ๊ฒฝ์šฐ O(N^2), ์ค‘๊ฐ„ ๊ฐ’ ํ”ผ๋ฒ— ์‚ฌ์šฉ์‹œ ๋Œ€๋ถ€๋ถ„ O(N log N))
  ๋ณ‘ํ•ฉ ์ •๋ ฌ: O(N log N) (๋ชจ๋“  ๊ฒฝ์šฐ์— ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ)
  ํž™ ์ •๋ ฌ: O(N log N) (๋น„๊ต ๊ธฐ๋ฐ˜ ์ •๋ ฌ ์ค‘ ์•ˆ์ •์ )
  ๋”ฐ๋ผ์„œ, ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค๋ฉด ํ€ต ์ •๋ ฌ, ๋ณ‘ํ•ฉ ์ •๋ ฌ, ํž™ ์ •๋ ฌ ๋“ฑ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘๊ฑฐ๋‚˜ ๊ฑฐ์˜ ์ •๋ ฌ๋œ ์ƒํƒœ๋ผ๋ฉด ์‚ฝ์ž… ์ •๋ ฌ๋„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  
  2. ๊ณต๊ฐ„ ๋ณต์žก๋„
  ํ€ต ์ •๋ ฌ: O(log N) ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ(์žฌ๊ท€ ํ˜ธ์ถœ ์Šคํƒ)
  ๋ณ‘ํ•ฉ ์ •๋ ฌ: O(N) ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ (์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์‚ฌ์šฉ)
  ์‚ฝ์ž… ์ •๋ ฌ, ๋ฒ„๋ธ” ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ: O(1) ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ (์ œ์ž๋ฆฌ ์ •๋ ฌ)
  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์ด ์ œํ•œ์ ์ผ ๊ฒฝ์šฐ, ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์‚ฝ์ž… ์ •๋ ฌ, ์„ ํƒ ์ •๋ ฌ, ๋˜๋Š” ์ตœ์ ํ™”๋œ ํ€ต ์ •๋ ฌ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  
  3. ํŠน์ •ํ•œ ๋ฌธ์ œ ์š”๊ตฌ ์‚ฌํ•ญ
  ์•ˆ์ •์ ์ธ ์ •๋ ฌ: ์•ˆ์ •์ ์ธ ์ •๋ ฌ(Stable Sort)์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ๋ณ‘ํ•ฉ ์ •๋ ฌ์ด๋‚˜ ์‚ฝ์ž… ์ •๋ ฌ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ€ต ์ •๋ ฌ๊ณผ ํž™ ์ •๋ ฌ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์•ˆ์ •์ (Stableํ•˜์ง€ ์•Š์Œ)์ž…๋‹ˆ๋‹ค.
  ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ: ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ๊ฑฐ์˜ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์‚ฝ์ž… ์ •๋ ฌ์ด ๋งค์šฐ ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ํฉ์–ด์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ํ€ต ์ •๋ ฌ์ด๋‚˜ ๋ณ‘ํ•ฉ ์ •๋ ฌ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋ฌธ์ œ์˜ ์š”๊ตฌ ์‚ฌํ•ญ ๋ฐ ํžŒํŠธ
  ๋ฌธ์ œ์—์„œ ํŠน์ •ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•”์‹œํ•˜๊ฑฐ๋‚˜ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ œ ์„ค๋ช…์— "์ด์ง„ ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค"๋ผ๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด, ์ด์ง„ ํƒ์ƒ‰์„ ์œ„ํ•ด ์ •๋ ฌ์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๋น ๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์˜ˆ: ํ€ต ์ •๋ ฌ)์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  ๋˜๋Š” ์‹œ๊ฐ„ ์ œํ•œ์ด ๋นก๋นกํ•œ ๊ฒฝ์šฐ, ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๋„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  ์ •๋ฆฌ
  ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ, ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ฐ ๊ณต๊ฐ„ ๋ณต์žก๋„, ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ, ๋ฌธ์ œ์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋“ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ **N์ด ํฐ ๊ฒฝ์šฐ์—๋Š” O(N log N) ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ€ต ์ •๋ ฌ, ๋ณ‘ํ•ฉ ์ •๋ ฌ, ํž™ ์ •๋ ฌ)**์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•œ ์„ ํƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  
  ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” ๋จผ์ € ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€ ํŠน์„ฑ์„ ๋ถ„์„ํ•˜๊ณ , ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•ด ์ ์šฉํ•ด๋ณด์„ธ์š”. ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•™์Šตํ•˜๊ณ  ์ต์ˆ™ํ•ด์ง€๋ฉด, ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ• ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Description

  • ํ•™์Šตํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๋ช….

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions