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

๐Ÿบ ๋งค์ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œํ’€์ด๊ณผ์ • ๋ถ„์„ํ•˜๊ธฐ

์ข…๋งŒ๋ถ์˜ ๋ฌธ์ œํ•ด๊ฒฐ๊ฐœ๊ด€ ํŒŒํŠธ๋ฅผ ์ฝ๊ณ  ๋ฌธ์ œํ’€์ด์‹œ์— ์‹ค์ฒœํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.


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


๋ฌธ์ œํ•ด๊ฒฐ๋Šฅ๋ ฅ์„ ํ‚ค์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํ’€์–ด๋ณด์•„์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ง‰์—ฐํ•œ ์‹œ๋„๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค. ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ์‹์„ ์—ฐ๋งˆํ•˜๊ธฐ ์œ„ํ•ด  ์ž์‹ ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ’€๊ณ  ์žˆ๋Š”์ง€, ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•ด์•ผํ•˜๋Š”์ง€ ๋Š์ž„์—†์ด ํŒŒ์•…ํ•ด์•ผํ•œ๋‹ค. 


์•„๋ž˜์™€ ๊ฐ™์ด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ณผ์ •์„ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ ๋ณด๊ณ  ๊ฐ ๊ณผ์ •์„ ์ž์‹ ์ด ์ž˜ํ•˜๊ณ  ์žˆ๋Š”์ง€, ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. 


1. ๋ฌธ์ œ ์ดํ•ดํ•˜๊ธฐ

๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•œ๋‹ค. ์ž‘์€ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ž˜ ๋ชป ์ดํ•ดํ•˜๋ฉด ํ’€ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋“ค์ด ๋งŽ๋‹ค.


2. ์ž์‹ ์˜ ์–ธ์–ด๋กœ ์žฌ์ •์˜/์ถ”์ƒํ™”

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


3. ๊ณ„ํš์„ธ์šฐ๊ธฐ

๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ณ , ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ์„ ์‚ฌ์šฉํ• ์ง€ ์ •ํ•œ๋‹ค.


- ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ตœ์ ํ™” ๋ฌธ์ œ์ธ์ง€, ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ฌธ์ œ์ธ์ง€, ๊ฒ€์ƒ‰๋ฌธ์ œ์ธ์ง€ ๋ฌธ์ œ์œ ํ˜•์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํžŒ๋‹ค. ์ด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด์ „์— ํ’€์–ด๋ณธ ๊ฐ™์€ ์œ ํ˜•์˜ ๋ฌธ์ œํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.


- ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด, ๋ฌด์‹ํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ?์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•(brute-force)์— ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์ค‘๋ณต ์—ฐ์‚ฐ์„ ์—†์• ๋Š” ๋“ฑ ์ ์ง„์ ์ธ ๊ฐœ์„ ์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋„ ๊ฝค ๋งŽ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ’€ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋”๋ผ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํšจ์œจ์„ฑ์ด ์–ผ๋งˆ๋‚˜ ๊ฐœ์„ ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ๊ธฐ์ค€์„ ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€ ์œ ์šฉํ•˜๋‹ค.


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


- ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „์˜ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณธ ํ›„, ๊ทธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ณธ๋ž˜์˜ ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ ์ œ์•ฝ์กฐ๊ฑด ์—†์• ๊ฑฐ๋‚˜ ๋‹ค์ฐจ์›์˜ ๋ฌธ์ œ๋ฅผ 1์ฐจ์›์œผ๋กœ ์ค„์ด๋Š” ๋“ฑ์˜ ์‹œ๋„๋ฅผ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.


- ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์˜ ๊ฒฝ์šฐ ์ˆซ์ž๊ฐ€ ๋‚˜์—ด๋œ ๊ฒƒ ๋ณด๋‹ค ๊ธฐํ•˜ํ•™์ ์œผ๋กœ ํ‘œํ˜„๋œ ์ชฝ์„ ์‰ฝ๊ฒŒ ๋ฐ›์•„๋“ค์ธ๋‹ค. ๋ฌธ์ œ์— ๋‚˜์˜ค๋Š” ์ˆซ์ž๋“ค์„ ๊ทธ๋ž˜ํ”„ ๋“ฑ์„ ํ†ตํ•ด ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•ด๋ณด์ž.


- ์ข€ ๋” ๋‹ค๋ฃจ๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ๋กœ ๋ฌธ์ œ๋ฅผ ๋ถ„ํ•ดํ•ด๋ณธ๋‹ค. ๋ณต์žกํ•œ ์ œ์•ฝ์กฐ๊ฑด์„ ๋ถ„ํ•ดํ•ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋‹จ์ˆœํ•œ ์ œ์•ฝ์กฐ๊ฑด์œผ๋กœ ๋งŒ๋“œ๋Š” ํŽธ์ด ๋” ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.


- ์‚ฌ๋‹ค๋ฆฌ ํƒ€๊ธฐ์—์„œ ๋‹น์ฒจ์—์„œ ๋ถ€ํ„ฐ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋Š”๊ฒŒ ๋‹น์ฒจ๋˜๊ธฐ ์œ„ํ•ด ์„ ํƒํ•ด์•ผํ•˜๋Š” ์‚ฌ๋‹ค๋ฆฌ ์ž…๊ตฌ๋ฅผ ์ฐพ๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ์ฒ˜๋Ÿผ, ๋ฌธ์ œ์— ๋‚ด์žฌ๋œ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์ด ์žˆ๋‹ค.


- ์ˆœ์„œ๊ฐ€ ์—†๋Š” ๋ฌธ์ œ์— ์ˆœ์„œ๋ฅผ ๊ฐ•์ œํ•ด๋ณธ๋‹ค.


- ๋‹ต์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ, ํ•œ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ์ •๊ทœํ™”canonicalizationํ•ด๋ณธ๋‹ค.



4. ๊ณ„ํš๊ฒ€์ฆ

- ๋ชจ๋“  ์š”๊ตฌ์กฐ๊ฑด ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์ฆ๋ช…ํ•˜๊ธฐ.

- ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ ๋ถ„์„.

- ํŠนํžˆ, ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ.


5. ๊ณ„ํš์ˆ˜ํ–‰

- ์ฝ”๋”ฉ 

- ์ฝ”๋“œ๋ฅผ ๋นจ๋ฆฌ์งœ๊ธฐ๋ณด๋‹ค๋Š” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.


- ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ธฐ. ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ 3๋ฒˆ ์ด์ƒ ๋“ฑ์žฅํ•œ๋‹ค๋ฉด ํ•จ์ˆ˜๊ฐ€ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.


- ๊ธฐ์ดˆ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€๋ง๊ณ , ํ‘œ์ค€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ผ.


- ๊ฐ™์€ ๊ธฐ๋Šฅ์ด๋ผ๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. 


- ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋“ฑ์˜ ์ด๋ฆ„์„ ๋ช…๋ฃŒํ•˜๊ฒŒ ์ง€์–ด๋ผ. ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ์ด๋ฆ„์„ ์ง“๋Š” ๋ฒ„๋ฆ‡์„ ๋“ค์ด๊ณ , ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ช… ๊ทœ์•ฝ์„ ์ตํ˜€๋ผ.


- ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœํ™”ํ•ด์„œ ์ €์žฅํ•˜๋ผ. ๊ฐ™์€ ์Šค์ผ€์ผ ์•ˆ์—์„œ ๊ทœ์น™์„ ๋”ฐ๋ฅด๋„๋ก ํ•œ๋‹ค.


- ์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ์™€ ์ƒ๊ด€์—†๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ถ„๋ฆฌํ•˜๋ผ.


  - ๋””๋ฒ„๊น…


6. ํšŒ๊ณ ํ•˜๊ธฐ

์ž์‹ ์˜ ๋ฌธ์ œํ•ด๊ฒฐ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด, ํšŒ๊ณ ๋Š” ์ž์‹ ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋Š”์ง€ ๋Œ์•„๋ณด๊ณ  ๊ฐœ์„ ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค.


1. ๋ฌธ์ œ ํ’€๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ์™€ ์ž์‹ ์˜ ๊ฒฝํ—˜์„ ๊ธฐ๋กํ•œ๋‹ค.
- ๋‹ต์œผ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
- ๊ฐ„๋‹จํ•œ ํ•ด๋ฒ• 
- ์ž์‹ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹
- ํ•ด๋ฒ•์„ ์ฐพ๋Š”๋ฐ ๊ฒฐ์ •์ ์ด์—ˆ๋˜ ๊นจ๋‹ฌ์Œ 
- ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ์˜ค๋‹ต์›์ธ 

2. ํ•œ๋ฒˆ ํ‘ผ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๋‹ค์‹œ ํ‘ผ๋‹ค๋‹ค์‹œ ํ’€ ๋•Œ๋Š” ์ข€ ๋” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐพ๊ฑฐ๋‚˜, ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค.

3. ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ‘ผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ๋ณธ๋‹ค. ๊ฐ™์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ฌธ์ œํ’€์ด๋ฐฉ์‹์„ ๋ณด๊ณ  ํ†ต์ฐฐ๋ ฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.