Just keep coding ...

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 4. ๋ณ‘ํ•ฉ ์ •๋ ฌ (๋‹ค๋ฅธ ์ •๋ ฌ๋ณด๋‹ค ์ƒ๋Œ€์ ์œผ๋กœ ํšจ์œจ์ )

2024. 10. 28. 08:32ใ†์•Œ๊ณ ๋ฆฌ์ฆ˜

728x90

๐Ÿ‘‰  ๋ถ„ํ•  ์ •๋ณต(Divide and Conquer)

  1. ๋ถ„ํ• (divide): ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ(์‰ฌ์šด ๋ฌธ์ œ)๋กœ ๋ถ„ํ• 
  2. ์ •๋ณต(conquer): ์ž‘์€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋ฅผ ๊ฐ๊ฐ ํ•ด๊ฒฐ
  3. ์กฐํ•ฉ(combine): ํ•ด๊ฒฐํ•œ ๋ถ€๋ถ„ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์‹œ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„
  • ์ด์œ ? ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ "๋ถ„ํ• ํ•˜๋Š” ๋ฐฉ์‹์ด ๋™์ผํ•œ" ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ
  • ๋” ์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ํฌ๊ธฐ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•˜์—ฌ ๋ถ„ํ• 
  • ๋ถ„ํ•  ์ •๋ณต์˜ ๋‹จ์ 
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒ
    • ์ด๋Š” ์˜ค๋ฒ„ํ—ค๋“œ(overhead)๋กœ ์ด์–ด์ง„๋‹ค.

 

๐Ÿ‘‰  ๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)

  • ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ์ „ํ˜•์ ์ธ ๋ถ„ํ•  ์ •๋ณต(divide and conquer) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ O(NlogN)์„ ๋ณด์žฅํ•˜๋Š” ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜
  1. ๋ถ„ํ• (divide): ์ •๋ ฌํ•œ ๋ฐฐ์—ด(ํฐ ๋ฌธ์ œ)์„ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด(์ž‘์€ ๋ฌธ์ œ) 2๊ฐœ๋กœ ๋ถ„ํ• 
  2. ์ •๋ณต(conquer): ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ์ •๋ ฌ (์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ)
  3. ์กฐํ•ฉ(combine): ์ •๋ ฌ๋œ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๋‹ค์‹œ ๋ณ‘ํ•ฉ

๋ณ‘ํ•ฉ์ •๋ ฌ - ์œ„ํ‚คํ”ผ๋””์•„

๐Ÿ‘‰  ๋ณ‘ํ•ฉ ์ •๋ ฌ์˜ ๋™์ž‘ ๋ฐฉ์‹

  • ๋ถ„ํ• (divide): ๋ถ„ํ•  ์ž‘์—…์€ ๋‹จ์ˆœํžˆ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ชผ๊ฐœ๋Š” ๊ฒƒ

  • ์ •๋ณต(conquer): ๋‘ ๊ฐœ์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ "์ •๋ ฌ๋œ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด"๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ 
    1. ๊ฐ ๋ถ€๋ถ„์˜ ๋ฐฐ์—ด์€ ์ด๋ฏธ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ๋ณธ๋‹ค.
    2. ๊ฐ ๋ถ€๋ถ„ ๋ฐฐ์—ด์— ๋Œ€ํ•˜์—ฌ ์ฒซ์งธ ์›์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ํ•˜๋‚˜์”ฉ ํ™•์ธ
    3. ์ด ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ N๊ฐœ์ผ ๋•Œ, O(N)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์š”๊ตฌ๋œ๋‹ค.
  • ์žฅ์ : ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ O(NlogN)์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ํšจ์œจ์ 
  • ๋‹จ์ : ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ, ์ •๋ณต(conquer) ๊ณผ์ •์—์„œ ์ž„์‹œ ๋ฐฐ์—ด์ด ํ•„์š”

 

 

 

 

์ถœ์ฒ˜: https://fastcampus.co.kr/dev_online_upjscodingtest, https://ko.wikipedia.org/wiki/%ED%95%A9%EB%B3%91_%EC%A0%95%EB%A0%AC

 

ํ•ฉ๋ณ‘ ์ •๋ ฌ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ํ•ฉ๋ณ‘ ์ •๋ ฌ ๋˜๋Š” ๋ณ‘ํ•ฉ ์ •๋ ฌ(์˜์–ด: merge sort ๋จธ์ง€ ์†ŒํŠธ[*])์€ O(n log n) ๋น„๊ต ๊ธฐ๋ฐ˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ ์ด ์ •๋ ฌ์€ ์•ˆ์ • ์ •๋ ฌ์— ์†ํ•˜๋ฉฐ,

ko.wikipedia.org

 

 

JavaScript ์ฝ”๋”ฉํ…Œ์ŠคํŠธ 131๊ฐœ ์˜ˆ์ œ & CS์ง€์‹์œผ๋กœ ๋๋‚ด๊ธฐ | ํŒจ์ŠคํŠธ์บ ํผ์Šค

25์‹œ๊ฐ„ ๋Œ€๋น„ ๊ณผ์ • / '์ฝ”ํ…Œ ๋ ˆ์ „๋“œ' ์œ ํŠœ๋ฒ„ ๊ฐ•์‚ฌ๋‹˜๊ป˜ ํ•ต์‹ฌ๋งŒ ๋ฐฐ์šฐ๊ณ  ๋น ๋ฅด๊ฒŒ ํ•ฉ๊ฒฉํ•˜์„ธ์š”.

fastcampus.co.kr

 

728x90