1. ์ž๋ฃŒ๊ตฌ์กฐ


์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ - ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ, ๋ฑ

๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ - ์šฐ์„ ๋„ ํ, ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„, ๋„คํŠธ์›Œํฌ


2.๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ฐจ์ด


๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ์€ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์„œ๋กœ ๋ถ™์–ด์žˆ๊ณ , ๋ฌด์–ธ๊ฐ€ ์‚ฝ์ž…, ์‚ญ์ œํ•˜๋Š” ์ž‘์—…์„ ํ• ๋•Œ ํ•ด๋‹น ๊ณต๊ฐ„์„ ๋น„์šด๋‹ค์Œ ๋ฐฐ์—ด ์ „์ฒด๋ฅผ ๋‹น๊ธฐ๊ณ  ๋ฏธ๋Š” ๊ณผ์ •์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

์‚ฝ์ž…, ์‚ญ์ œ์‹œ ํšจ์œจ์ด ๋–จ์–ด์ง, ๋Œ€์‹  ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ถ™์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ์ž‘์—…์„ ํ• ๋•Œ ํšจ์œจ์ด ์ข‹๊ณ  ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ๋น„ํ•ด ์‹คํ–‰ ํšจ์œจ์„ ์ค‘์‹œํ•จ


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


3.์Šคํƒ๊ณผ ํ


์Šคํƒ์€ ํ›„์ž… ์„ ์ถœ์˜ ๋ฐฉ์‹์˜ ์„ ํ˜• ๋ฆฌ์ŠคํŠธ๋กœ ์Œ“์ธ ์ ‘์‹œ๋”๋ฏธ ๋“ฑ์˜ ์˜ˆ์‹œ

์Šคํƒ ์ƒ๋‹จ์„ top, ํ•˜๋‹จ์„ bottom์œผ๋กœ ํ•œ๋‹ค. bottom์˜ ๊ฐ’์ด 0์ผ ๊ฒฝ์šฐ ์Šคํƒ์ด ๋น„์–ด์žˆ๊ณ , top == bottom์ผ๊ฒฝ์šฐ ์Šคํƒ์ด ๊ฝ‰ ์ฐฌ ๊ฒฝ์šฐ์ด๋‹ค.


ํ๋Š” ์„ ์ž… ์„ ์ถœ์˜ ๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์„ ํ˜• ํ, ์›ํ˜• ํ๋กœ ๋ถ„๋ฅ˜๋˜์ง€๋งŒ ์„ ํ˜• ํ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

ํ์˜ ์•ž์„ front ๋’ค๋ฅผ rear๋ผ๊ณ  ํ•œ๋‹ค. front == rear ์ผ๊ฒฝ์šฐ ํ๊ฐ€ ๋น„์–ด์žˆ๊ณ  front%์š”์†Œ == (rear+1)%์š”์†Œ ์ผ ๊ฒฝ์šฐ ํ๊ฐ€ ๊ฝ‰ ์ฐฌ ๊ฒฝ์šฐ์ด๋‹ค.


4.ํž™


ํž™์€ ์šฐ์„ ๋„ ํ์— ์‚ฌ์šฉ๋˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•์œผ๋กœ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์šฐ์„  ์ˆœ์œ„์— ์•Œ๋งž๋Š” ๊ฐ’์ด ์œ„๋กœ ์˜ฌ๋ผ์˜ค๊ณ  ์ž์‹ ๋…ธ๋“œ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์ˆœ์„œ๋Š” ์ƒ๊ด€ํ•˜์ง€ ์•Š๋Š”๋‹ค.


5. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜


์•ˆ์ •์ ์ธ ์ •๋ ฌ ๋ฐฉ๋ฒ• (๊ฐ™์€ ์š”์†Œ๊ฐ€ ์ •๋ ฌ ๋„์ค‘ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์Œ): ์„ ํƒO(n^2), ์‚ฝ์ž…O(n^2), ๋ฒ„๋ธ”O(n^2), ํ•ฉ๋ณ‘O(nlog2n)

๋น„ ์•ˆ์ •์ ์ธ ์ •๋ ฌ ๋ฐฉ๋ฒ• (๊ฐ™์€ ์š”์†Œ๊ฐ€ ์ •๋ ฌ ๋„์ค‘ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€œ: ํ€ตO(nlog2n) ํž™O(nlog2n)


๋ฒˆ์™ธ: ์‰˜ (์‚ฝ์ž…์ •๋ ฌ์ด ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n)์ธ ๊ฒƒ์„ ์ด์šฉํ•œ ์ •๋ ฌ) O(n^1.5), ๊ธฐ์ˆ˜์ •๋ ฌ (์ž๋ฆฟ์ˆ˜๋กœ ๋ฒ„ํ‚ท์— ๋„ฃ๋‹ค ๋บ๋‹ค ํ•˜๋ฉฐ ์ •๋ ฌ)O(kn)


6. ํ€ต์ •๋ ฌ


์–‘ ์ชฝ ๋์„ ์„œ๋กœ i j ๋ผ๊ณ  ์นœ๋‹ค.


ํ”ผ๋ด‡์„ ์„ค์ •ํ•œ ํ›„ ํ”ผํฟ๋ณด๋‹ค i์™€ j๊ฐ€ ์ปค์ง€๊ณ  ์ค„์–ด๋“ค๋ฉฐ ์ž‘์€๊ฐ’์„ ์™ผ์ชฝ ํฐ๊ฐ’์„ ์˜ค๋ฅธ์ชฝ์— ๋†“๋Š”๋‹ค


๊ทธ ํ›„ ํ”ผ๋ด‡์„ i = j ์ง€์  ํ˜น์€ i > j ์ผ๋•Œ j ์ง€์ ์— ํ”ผ๋ด‡์„ ์„ค์ •ํ•œ๋‹ค.


๋ฐ˜๋ณต


์ตœ์„ ์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(log2n)์ด๋ฉฐ ์ตœ์•…์˜ ๊ฒฝ์šฐ (ํ”ผ๋ด‡์˜ ๊ตํ™˜์ด 1ํšŒ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์„๋•Œ) O(n^2)์˜ ๋ณต์žก๋„๋ฅผ ๋ณด์ธ๋‹ค.


median of 3, ๊ฐ€์ƒํ‚ค ์„ค์ •, ํ€ต์ •๋ ฌ๊ณผ ์‚ฝ์ž…์ •๋ ฌ์„ ์„œ๋ธŒํŒŒ์ผ์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ ๋‚˜๋ˆ  ํ˜ธ์ถœํ•˜๋Š” ์‹์œผ๋กœ ๊ฐœ์„ ํ• ์ˆ˜ ์žˆ๋‹ค.




๋‚˜ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘๊ฐ„๊ณ ์‚ฌ๋•Œ ์ด๊ฑฐ๋ž‘ ๋น„์Šทํ•œ ๋ฌธ์ œ๋“ค ํ’€์–ด๋ณธ๋“ฏ;