Skip to content

๐Ÿง Algorithm - Algorithm Type #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
4BFC opened this issue Aug 15, 2024 · 0 comments
Open

๐Ÿง Algorithm - Algorithm Type #13

4BFC opened this issue Aug 15, 2024 · 0 comments
Assignees
Labels
๐Ÿง Algorithm ๐Ÿง Algorithm

Comments

@4BFC
Copy link
Member

4BFC commented Aug 15, 2024

๐Ÿง 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

  • ํ•™์Šตํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๋ช….
@4BFC 4BFC added the ๐Ÿง Algorithm ๐Ÿง Algorithm label Aug 15, 2024
@4BFC 4BFC self-assigned this Aug 15, 2024
@4BFC 4BFC added this to the ๐Ÿง Algorithm milestone Aug 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
๐Ÿง Algorithm ๐Ÿง Algorithm
Projects
None yet
Development

No branches or pull requests

1 participant