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

5. Search ๊ฒ€์ƒ‰

๊ฒ€์ƒ‰(Search) ๊ฒ€์ƒ‰ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ ์ค‘์—์„œ ์›ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ๋Š” ์ž‘์—… ๋ชฉ์ ํ•˜๋Š” ํƒ์ƒ‰ ํ‚ค๋ฅผ ๊ฐ€์ง„ ํ•ญ๋ชฉ์„ ์ฐพ๋Š” ๊ฒƒ ํƒ์ƒ‰ ํ‚ค(search key) : ์ž๋ฃŒ๋ฅผ ๊ตฌ๋ณ„ํ•˜์—ฌ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค ๊ฒ€์ƒ‰์˜ ์ข…๋ฅ˜ ์ˆœ์ฐจ ๊ฒ€์ƒ‰ (sequential search) ์ด์ง„ ๊ฒ€์ƒ‰ (binary search) ํ•ด์‰ฌ (hash) ์ˆœ์ฐจ ๊ฒ€์ƒ‰ ์ผ๋ ฌ๋กœ ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ• ๋ฐฐ์—ด์ด๋‚˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋“ฑ ์ˆœ์ฐจ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„๋œ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ์›ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์„ ๋•Œ ์œ ์šฉํ•จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‹จ์ˆœํ•˜์—ฌ ๊ตฌํ˜„์ด ์‰ฝ์ง€๋งŒ, ๊ฒ€์ƒ‰ ๋Œ€์ƒ์˜ ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜์—ฌ ๋น„ํšจ์œจ์ ์ž„ 2๊ฐ€์ง€ ๊ฒฝ์šฐ ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฒ€์ƒ‰๊ณผ์ • ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๊ฒ€์ƒ‰ ..

4. Array Extra ๋ฐฐ์—ด

์™„์ „ ๊ฒ€์ƒ‰ (Exaustive Search) ์™„์ „ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•์€ ๋ฌธ์ œ์˜ ํ•ด๋ฒ•์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜์—ดํ•ด๋ณด๊ณ  ํ™•์ธํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. Brute-force ํ˜น์€ generate-and-test ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ ์šด๋‹ค. ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธ ํ•œ ํ›„, ์ตœ์ข… ํ•ด๋ฒ•์„ ๋„์ถœํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰ ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ, ํ•ด๋‹ต์„ ์ฐพ์•„๋‚ด์ง€ ๋ชปํ•  ํ™•๋ฅ ์ด ์ž‘๋‹ค. ์ž๊ฒฉ๊ฒ€์ •ํ‰๊ฐ€ ๋“ฑ์—์„œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ, ์šฐ์„  ์™„์ „ ๊ฒ€์ƒ‰์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ํ•ด๋‹ต์„ ๋„์ถœํ•œ ํ›„, ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด๋‹ต์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค. ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Greedy) ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์  ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ทผ์‹œ์•ˆ์ ์ธ ๋ฐฉ๋ฒ• ์—ฌ๋Ÿฌ ๊ฒฝ..

3. Sort ์ •๋ ฌ

์ •๋ ฌ ์ •๋ ฌ 2๊ฐœ ์ด์ƒ์˜ ์ž๋ฃŒ๋ฅผ ํŠน์ • ๊ธฐ์ค€์— ์˜ํ•ด ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ํฐ ๊ฐ’(์˜ค๋ฆ„์ฐจ์ˆœ : ascending), ํ˜น์€ ๊ทธ ๋ฐ˜๋Œ€์˜ ์ˆœ์„œ๋Œ€๋กœ(๋‚ด๋ฆผ์ฐจ์ˆœ : dexending) ์žฌ๋ฐฐ์—ด ํ•˜๋Š” ๊ฒƒ ํ‚ค : ์ž๋ฃŒ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” ํŠน์ • ๊ฐ’ ์ •๋ ฌ์˜ ์ข…๋ฅ˜ ๋ฒ„๋ธ” ์ •๋ ฌ ์นด์šดํŒ… ์ •๋ ฌ ์„ ํƒ ์ •๋ ฌ ํ€ต ์ •๋ ฌ ์‚ฝ์ž… ์ •๋ ฌ ๋ณ‘ํ•ฉ ์ •๋ ฌ ๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort) ์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์ž๋ฆฌ๋ฅผ ๊ณ„์† ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹ ์ •๋ ฌ๊ณผ์ • ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์ธ์ ‘ํ•œ ์›์†Œ๋ผ๋ฆฌ ๊ณ„์† ์ž๋ฆฌ๋ฅผ ๊ตํ™˜ํ•˜๋ฉด์„œ ๋งจ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ๊นŒ์ง€ ์ด๋™ํ•œ๋‹ค. ํ•œ ๋‹จ๊ณ„๊ฐ€ ๋๋‚˜๋ฉด ๊ฐ€์žฅ ํฐ ์›์†Œ๊ฐ€ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ๋กœ ์ •๋ ฌ๋œ๋‹ค. ๊ตํ™˜ํ•˜๋ฉฐ ์ž๋ฆฌ๋ฅผ ์ด๋™ํ•˜๋Š” ๋ชจ์Šต์ด ๋ฌผ ์œ„์— ์˜ฌ๋ผ์˜ค๋Š” ๊ฑฐํ’ˆ ๋ชจ์–‘๊ณผ ๊ฐ™๋‹ค๊ณ  ํ•˜์—ฌ ๋ฒ„๋ธ” ์ •๋ ฌ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„ O(n²) ๋ฐฐ์—ด์„ ํ™œ์šฉํ•œ ๋ฒ„๋ธ” ์ •๋ ฌ def BubbleSor..

2. Array ๋ฐฐ์—ด

๋ฐฐ์—ด ๋ฐฐ์—ด ๋ฐฐ์—ด : ์ผ์ •ํ•œ ์ž๋ฃŒํ˜•์˜ ๋ณ€์ˆ˜๋“ค์„ ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ์—ด๊ฑฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์•„๋ž˜์˜ ์˜ˆ๋Š” 6๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Num0 = 0 Num1 = 1 Num2 = 2 Num3 = 3 Num4 = 4 Num5 = 5 Num = [0, 1, 2, 3, 4, 5] ๋ฐฐ์—ด์˜ ํ•„์š”์„ฑ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ, ์ผ์ผ์ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋ช…์„ ์ด์šฉํ•˜์—ฌ ์ž๋ฃŒ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ์„ ์–ธ์„ ํ†ตํ•ด์„œ ๋‘˜ ์ด์ƒ์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋‹ค์ˆ˜์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹ค์ˆ˜์˜ ๋ณ€์ˆ˜๋กœ๋Š” ํ•˜๊ธฐ ํž˜๋“  ์ž‘์—…์„ ๋ฐฐ์—ด์„ ํ™œ์šฉํ•ด ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. 1์ฐจ์› ๋ฐฐ์—ด 1์ฐจ์› ๋ฐฐ์—ด์˜ ์„ ์–ธ ๋ณ„๋„์˜ ์„ ์–ธ ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฉด ๋ณ€์ˆ˜์—..

1. Algorithm ์•Œ๊ณ ๋ฆฌ์ฆ˜

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์œ ํ•œํ•œ ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ๋‚˜ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฃผ๋กœ ์ปดํ“จํ„ฐ ์šฉ์–ด๋กœ ์“ฐ์ด๋ฉฐ, ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ค ์ผ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„์  ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค. ์ฆ‰, ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ปดํ“จํ„ฐ ๋ถ„์•ผ์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์˜์‚ฌ์ฝ”๋“œ(์Šˆ๋„์ฝ”๋“œ, Pseudocode)์™€ ์ˆœ์„œ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ์ธก์ • ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •ํ™•์„ฑ : ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€ ์ž‘์—…๋Ÿ‰ : ์–ผ๋งˆ๋‚˜ ์ ์€ ์—ฐ์‚ฐ์œผ๋กœ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด๋‚ด๋Š”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ : ์–ผ๋งˆ๋‚˜ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€ ๋‹จ์ˆœ์„ฑ : ์–ผ๋งˆ๋‚˜ ๋‹จ์ˆœํ•œ๊ฐ€ ์ตœ์ ์„ฑ : ๋” ์ด์ƒ ๊ฐœ์„ ํ•  ์—ฌ์ง€์—†์ด ์ตœ์ ํ™”๋˜์—ˆ๋Š”๊ฐ€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ€๋Šฅ ⇒ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ..