[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์žฌ๊ท€ํ˜ธ์ถœ (์™„์ „ํƒ์ƒ‰)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 31. 09:51

์žฌ๊ท€ํ˜ธ์ถœ ์žฌ๊ท€ํ•จ์ˆ˜๋ž€ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๋•Œ ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…๋“ค์ด ๋Œ€ํ•ด์„œ๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ‘œํ˜„ํ•œ๋‹ค. ๊ธฐ์ € ์‚ฌ๋ก€๋ž€ ๋” ์ด์ƒ ์ชผ๊ฐœ์ง€์ง€ ์•Š๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž‘์—…์œผ๋กœ, ์ด์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ๋Š” ์žฌ๊ท€ํ˜ธ์ถœ์„ ๋ฉˆ์ถ”๊ณ  ๋‹ต์„ ๊ณง์žฅ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๊ธฐ์ € ์‚ฌ๋ก€๋ฅผ ์ •ํ•  ๋•Œ๋Š” ๋ชจ๋“  ์‚ฌ๋ก€์˜ ๋‹ต์ด ๊ธฐ์ € ์‚ฌ๋ก€๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผํ•œ๋‹ค. ์™„์ „ ํƒ์ƒ‰ (== Brute Force, Exhaustive search) ์™„์ „ํƒ์ƒ‰์€ ์ปดํ“จํ„ฐ์˜ ์—ฐ์‚ฐ๋Šฅ๋ ฅ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜์—ดํ•˜๋ฉด์„œ ๋‹ต์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ž…๋ ฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋•Œ ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ ๋” ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค. ๋‹ต์„ ๋ฌด์กฐ๊ฑด ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ์ฐพ๋Š”๋ฐ์— ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ๋น„ํŠธ์กฐ์ž‘ (๋น„ํŠธ๋งˆ์Šคํฌ, ์—ฐ์‚ฐ, ์ฝ”๋“œ ๊ตฌํ˜„)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 31. 09:45

๋น„ํŠธ ์กฐ์ž‘ ๊ฐœ๋… ๋น„ํŠธ(bit)๋ž€ 0๊ณผ 1์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„์ด๋‹ค. 4bit๋ฅผ ๋ชจ์€ ๋‹จ์œ„๋ฅผ ๋‹ˆ๋ธ”(nibble)์ด๋ผ ๋ถ€๋ฅด๊ณ , 8bit๋ฅผ ๋ชจ์€ ๋‹จ์œ„๋ฅผ ๋ฐ”์ดํŠธ(byte)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 2byte๋ฅผ ๋ชจ์€ ๋‹จ์œ„๋Š” ์ผ๋ถ€ ์ „์žํ†ต์‹ ๊ธฐ๊ธฐ์—์„œ ์›Œ๋“œ(word)๋ผ๊ณ  ํ•œ๋‹ค. ๊ตฌํ˜„ C++์—์„œ๋Š” ๋น„ํŠธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ ์ด๋ผ๋Š” ํ—ค๋”๋ฅผ ํฌํ•จํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฐ์‚ฐ C++์—์„œ ๋น„ํŠธ์—ฐ์‚ฐ๋“ค์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐœ๋… ๊ณต๋ถ€ ์ธก๋ฉด์—์„œ ๊ทธ๋ƒฅ ๊ตฌํ˜„๋„ ํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•๋„ ์ตํ˜€๋‘๋ คํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด 1byte ๋‹จ์œ„๋กœ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, bit ๋‹จ์œ„์˜ ์ž๋ฃŒํ˜•์€ ์—†๋‹ค. ๋‹ค๋งŒ bool ํ˜•์€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ 1byte๋ฅผ ์ฐจ์ง€ํ•˜์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด true ํ˜น์€ false ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ด์šฉ..