๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Career๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/ํ•œ๊ตญ

๊ฐœ๋ฐœ์ž ์นด์นด์˜ค ์„œ๋ฅ˜ ํ†ต๊ณผ, ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ, 2์ฐจ ์›๊ฒฉ ๋ฉด์ ‘ !

by engineer M 2020. 3. 4.

์นด์นด์˜ค ์›๊ฒฉ ๋ฉด์ ‘์„ ๋ดค๋‹ค. 

๋ฉด์ ‘ ์งˆ๋ฌธ์€ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, 

SORTING ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ๋งŽ์ด ๋‚˜์™”๋‹ค. 

 

์„œ๋ฅ˜ ํ†ต๊ณผํ•˜๊ณ , ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋„ ํ†ต๊ณผํ•ด์„œ ๊ธฐ๋ถ„์ด ๋ฌ˜ํ–ˆ๋‹ค.

์‚ฌ์‹ค ์นด์นด์˜ค๋Š” ๋‚˜์—๊ฒŒ ๋„ˆ๋ฌด๋‚˜ ๊ฑฐ๋Œ€ํ•œ ํšŒ์‚ฌ์—ฌ์„œ, ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์กฐ์ฐจ๋„ ํ†ต๊ณผ๋ฅผ ๋ชปํ•  ๊ฑฐ๋ผ๊ณ  ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

ํŠนํžˆ 3๋ฌธ์ œ๊ฐ€ ๋‚˜์˜จ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ๊ฒจ์šฐ 2๋ฌธ์ œ๋ฅผ ๊ฐ„์‹ ํžˆ ํ’€์–ด์„œ... 

๋‹น์—ฐํžˆ ๋–จ์–ด์กŒ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ,

 

๊ทธ๋Ÿฐ๋ฐ ์šด์ด ์ข‹์•˜๋Š”์ง€, ์„œ๋ฅ˜๋„ ํ†ต๊ณผํ–ˆ๊ณ , ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋„ ํ†ต๊ณผํ•ด์„œ ๊ธฐ๋ถ„์ด ๋‚ ์•„๊ฐˆ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ,

๋งˆ์ง€๋ง‰ ๊ด€๋ฌธ, 2์ฐจ ์›๊ฒฉ ๋ฉด์ ‘์ด ๋‚˜๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์—ˆ๋‹ค...

 

(์–ด๋Š ์นดํ…Œ๊ณ ๋ฆฌ์— ์ง€์›ํ•˜๋Š๋ƒ๊ฒŒ ๋”ฐ๋ผ ๋ฌผ์–ด๋ณด๋Š” ์งˆ๋ฌธ์ด ๋งŽ์ด ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ ์นด์นด์˜ค์—์„œ ์ง€์›ํ•˜๋Š” ํŒ€์ด ์–ด๋–ค ์ผ์„ ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.)

์ค€๋น„๋Š” ์—ด์‹ฌํžˆ ํ–ˆ๋Š”๋ฐ ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด, ๊ธฐ๋ณธ์— ๋” ์ถฉ์‹คํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. :)

 

์š”์ฆ˜ ์ฝ”๋กœ๋‚˜ ๋•Œ๋ฌธ์— ํ•œ๊ตญ์ด ๋’ค์ˆญ์ˆญํ•˜๊ณ , ์‚ฌ์‹ค์ƒ ๋ฉด์ ‘์ด ์–ธ์ œ ์žกํž์ง€๋„ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์ด๋ผ์„œ ์˜จ์ „ํžˆ ๋ฉด์ ‘์— ์ง‘์ค‘ํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ํŠนํžˆ ์˜ค๋ž˜ ์ „๋ถ€ํ„ฐ, ์บ๋‚˜๋‹ค์— ๊ฐ€์•ผํ• ์ง€, ํ•œ๊ตญ์— ๋‚จ์•„์•ผํ• ์ง€ ๊ณ ๋ฏผ์ด ๋งŽ์•˜๋˜ ์ƒํ™ฉ์ด์—ˆ์–ด์„œ ๋ฌด๊ธฐํ•œ์œผ๋กœ ๋ฉด์ ‘์ด ๊ณ„์† ๋ฏธ๋ค„์ง€๋Š” ์ƒํ™ฉ์ด ๋งˆ์น˜ ๋ถˆ๊ธธํ•œ ์ „์กฐ ๊ฐ™์ด ๋Š๊ปด์ง€๊ธฐ๋„ ํ–ˆ๋‹ค.

 

๋ฉด์ ‘์€ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ†ต๊ณผ ํ›„ ๋ฐ”๋กœ ๋‹ค์Œ ์ฃผ์— ์žกํ˜€์žˆ์—ˆ์œผ๋‚˜, ์ฝ”๋กœ๋‚˜ ๋•Œ๋ฌธ์— 2์ฃผ์ผ์ด ๋ฏธ๋ค„์กŒ๋‹ค. 

ํŠนํžˆ ์›๊ฒฉ ์ธํ„ฐ๋ทฐ๋ฅผ ํ•œ๋ฒˆ๋„ ๋ณธ์ ์ด ์—†์—ˆ์–ด์„œ, (์›๊ฒฉ ์ธํ„ฐ๋ทฐ + ์ฝ”๋”ฉ/ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ) ์–ด๋–ป๊ฒŒ ์ค€๋น„ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชฐ๋ž๊ณ , ์กฐ๊ธˆ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ๋‹ค. 

 

 ๋„ˆ๋ฌด๋‚˜ ๊ฐ€๊ณ  ์‹ถ์€ ํšŒ์‚ฌ์˜€์ง€๋งŒ, ๋•Œ๋ฌธ์— ์ธํ„ฐ๋ทฐ ๋‚ ์งœ๊ฐ€ ๋‚˜๊ฐ€์˜ฌ ์ˆ˜๋ก ์‹ฌ์žฅ์ด ๋‘๊ทผ๋‘๊ทผ ๋–จ๋ ค์„œ ์ด๋ž˜์„œ ์•„๋Š” ๊ฒƒ๋„ ์ œ๋Œ€๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋‚˜ ์‹ถ์—ˆ๋‹ค.. 

 

 

 ๊ทธ๋ž˜๋„ ๊ฐ์‚ฌํ•˜๊ฒŒ๋„ ์นด์นด์˜ค ์ธ์‚ฌํŒ€์—์„œ ๊ผฌ๋ฐ•๊ผฌ๋ฐ• ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์คฌ๊ณ , ์Šค์ผ€์ค„๋„ ์ƒ์„ธํžˆ ์•Œ๋ ค์ค˜์„œ ์—ญ์‹œ ์นด์นด์˜ค๊ตฌ๋‚˜ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ธ์‚ฌํŒ€์˜ ๋…ธ๋ ฅ์ด ๋ฌด์ƒ‰ํ•˜๊ฒŒ... ๋‚˜์˜ ์›๊ฒฉ ๋ฉด์ ‘์€... ์•„์ฃผ ํŒจ๋ง??์— ๊ฐ€๊นŒ์› ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 ์ผ๋‹จ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ๋ชปํ‘ผ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ์ƒ์„ธํ•˜๊ฒŒ ๋ฌผ์–ด๋ณด์…จ๋‹ค. 

 ์นด์นด์˜ค ์›๊ฒฉ ๋ฉด์ ‘, ํ˜น์€ 2์ฐจ ๋ฉด์ ‘์„ ์ค€๋น„ํ•˜์‹œ๋Š” ๋ถ„์ด๋ผ๋ฉด, ๊ผญ ๊ผญ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋•Œ ๋ชปํ‘ผ ๋ฌธ์ œ๋ฅผ ํ™•์‹คํžˆ ํ’€๊ณ  ๊ฐ€๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ํ™•์‹คํžˆ๋ž€ ๊ฒƒ์€ ์‹œ๊ฐ„ ๋ณต์žก๋„, ๊ณต๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ณ , ์™œ ์ž์‹ ์˜ ์†”๋ฃจ์…˜์ด ์ œ์ผ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€ ์‹œ๊ฐ„ ๋ณต์žก๋„, ๊ณต๊ฐ„ ๋ณต์žก๋„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

 

ํŠนํžˆ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•ด์„œ ์ž์„ธํ•˜๊ฒŒ ๋ฌผ์–ด๋ณด์…จ๋Š”๋ฐ, ์˜ˆ๋ฅผ ๋“ค๋ฉด "๊ทธ๋ž˜์„œ ์ด ๋กœ์ง์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”" ํ•˜๋Š” ์‹์ด์—ˆ๋‹ค.

 

๋•€ ๋ป˜๋ป˜ ;;;

 

์ด ๋ถ€๋ถ„์„ ์ž์„ธํ•˜๊ฒŒ ์ค€๋น„ํ•˜๊ธฐ ๋ชปํ–ˆ์–ด์„œ ์ œ๋Œ€๋กœ ๋Œ€๋‹ต์„ ๋ชปํ–ˆ์ง€๋งŒ, 

์นœ์ ˆํ•˜๊ฒŒ๋„ ์กฐ๊ธˆ์”ฉ ํžŒํŠธ๋ฅผ ์ฃผ์…”์„œ, ๊ฒฐ๊ตญ ๋Œ€๋‹ต์„ ์ž˜ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

๋ฌธ์ œ๋Š” ๋‘๋ฒˆ์งธ ๋ฌธ์ œ์ธ๋ฐ,

๊ฐ„๋‹จํ•œ Merge Sort์ธ๋ฐ๋„ ๋‹นํ™ฉํ•ด์„œ ์ž˜ ๊ธฐ์–ต์ด ์•ˆ๋‚ฌ๋‹ค. Merge Sort๋ฅผ ๋ถˆ๊ณผ ์ดํ‹€์ „์— ํ’€์—ˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ ์–ด๋–ป๊ฒŒ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€์ž…ํ•ด์„œ ํ‘ธ๋Š”์ง€๊ฐ€ ์ „ํ˜€ ๊ธฐ์–ต์ด ์•ˆ๋‚˜์„œ ๋ง์„ ํšก์„ค์ˆ˜์„ค ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. 

๊ทธ๋ž˜๋„ ๋๊นŒ์ง€ ์นœ์ ˆํ•˜๊ฒŒ ์„ค๋ช…์„ ์ž˜ ํ•ด์ฃผ์…จ๊ณ  ํžŒํŠธ๋ฅผ ๊ณ„์† ์ฃผ์‹œ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์‹  ๊ฒƒ ๊ฐ™๋‹ค ใ…œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค...

 

 ๋ถ„๋ช… ๋ง์นœ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์•ž์œผ๋กœ ๊ธฐ๋ณธ์— ์ถฉ์‹คํ•ด์„œ ๋” ์ž˜ ์ค€๋น„๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค. 

 

๊ทธ๋‚˜์ €๋‚˜ ์ฝ”๋กœ๋‚˜... ์ œ๋ฐœ ๋นจ๋ฆฌ ์ง€๋‚˜๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. 

๋‚ด๊ฐ€ ์•„๋ฌด๋ฆฌ ์—ด์‹ฌํžˆ ํ•ด๋„, ์„ธ์ƒ์—๋Š” ๋‚ด ํž˜์œผ๋กœ ์•ˆ๋˜๋Š” ๊ฒƒ๋“ค์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์„œ์„œํžˆ ๋Š๋ผ๊ณ  ์žˆ๋‹ค.  

 

 

๋Œ“๊ธ€