E D R , A S I H C RSS

Hanoi Problem

•˜๋…ธด ๋ฌธ œ

  • •˜๋…ธƒ‘ ๋ฌธ œ ๋ชจ๋‘๋“ค •„‹œ ?
  • ๋ง 3œฐ€ žˆœผ๋ฉด 1๋ฒˆ ๋ง—„œ 3๋ฒˆ ๋งนŒง€ ๋ง๋“ค„ ด๋™ ‹œ‚ค๋Š” ฒƒ .
  • ธ๋•Œ ๋ง ฌธฐ๋Š” ฐž ๋‹ค๋ฅด , ˜Œ— ๋ง€  œผ ๋ฐ‘—  œฐ ๋ง, œ„— ๋‹Œœผ๋กœ ฐ๋ง, ด๋Ÿฐ‹œผ๋กœ žˆ , •žœผ๋กœ๋„ „† ธ๋Ÿฐ‹œผ๋กœ ๋ฐ–— Œ“ˆ˜ ๋ฐ–— —†Šต๋‹ˆ๋‹ค.

•„š”•œ ง€‹

  • C++ ธฐดˆ ง€‹
  • Recursive Function

๋ฌธ œ †ŒŠค๋“ค

  • •„๋ž˜™€ ฐ™€ ˜ˆ œ ‹œผ๋กœ †ŒŠค๋ฅผ ๋งŒ๋“  Ž˜ง€— ๋„–ด ฃผ„š”.
๋„ „žœ๋ฐœ‹œ„†ŒŠค๋ˆ˜(ฃผ„ œ™ธ)‚ฌšฉ–ธ–ด Source
๋‚จƒ˜‘x‹œ„x๋ถ„ 30๋C++HanoiProblem/ƒ˜‘
žฅ€ง€ . . C++HanoiProblem/€ง€
‹ žฌ๋™ . 20๋C++HanoiProblem/žฌ๋™
ž„˜๋™‹€ ฑธ๋ฆผ 100๋ดˆณผ –ด…ˆ๋ธ”๋ฆฌ –ธ–ดHanoiProblem/˜๋™
ž„ƒ1‹œ„ 100๋JavaHanoiProblem/ž„ƒ


•™ƒ๋“คHanoiProblem„ ‘ธ๋Š” ฒƒ–ด๋ › ‹ค๋ฉด ฒŒ ‰ฌšด ๋ฌธ œ (˜€ ธ๋‹ง€ –ด๋ šด ๋ฌธ œ๋Š” •„‹ˆ๋ ) •™ƒ๋“คด ๋А๋‚„ ˆ˜ žˆ๋„๋ก •˜ธฐ œ„•ด ๋ฌด—‡„ •  ˆ˜ žˆ„นŒ ƒฐ•ด ๋ณด๋Š” ฒƒ•„š”•ฉ๋‹ˆ๋‹ค.

 €๋Š” •™ƒ๋“คHanoiProblem— ๋„ „•˜ธฐ  „— ๋‹Œ „ฐ€ง€๋ฅผ •ธฐ •ฃผ  ‹Šต๋‹ˆ๋‹ค.
  • žฌ€•ˆ˜— ๋Œ€•œ •
  • ‹ˆœ™”
  • ๋ฏธ๋กœฑฐŠฌ๋Ÿฌ๋‚ด๋ ˜ธฐ

žฌ€•ˆ˜— ๋Œ€•œ •

žฌ€•ˆ˜ฐ€ ‚ฌšฉ๋˜๋Š” ๋Œ€‘œ ˜ˆ ๋ช‡ฐ€ง€๋ฅผ ๋ณด—ฌค๋‹ˆ๋‹ค. žฌ€•ˆ˜ ‚ฌšฉ—๋„ ข…๋ฅ˜ฐ€ ๋‹ค๋ฅธ๋ฐ, ๋Œ€‘œ ข…๋ฅ˜๋“ค„ ๋ณด—ฌฃผ๋Š” ฒƒ‘š”•ฉ๋‹ˆ๋‹ค. "•„, žฌ€•ˆ˜ผ๋Š” ฒƒด๋ ‡ฒŒ๋„ ‚ฌšฉ๋  ˆ˜ žˆตฌ๋‚˜!" ผ๋ฎค…Œ…˜/ฝค๋น„„…˜, ”ผ๋ณด๋‚˜˜ˆ˜—ด, Šธ๋ฆฌฒ€ƒ‰, Œฉ† ๋ฆฌ•Œ, กฐฑด๋ฌธณผ žฌ€˜œ๋กœ ๋ฐ˜๋ณต๋ฌธ(while) ๋งŒ๋“คธฐ ๋“ฑด๋ฉด ถฉ๋ถ„•˜ง€ •Š„นŒ •ฉ๋‹ˆ๋‹ค.

๋งŒ•HanoiProblem„ ’€ฒŒ •˜ธฐ  „— Œฉ† ๋ฆฌ•Œณผ ๋น„Š•œ ˜•˜ ๋ฌธ œ๋งŒ ๋ณด—ฌคฌ๋‹ค๋ฉด, ˜žˆ๋ HanoiProblem„ –ด๋ ฒŒ ๋А๋ผ  •™Šตด ๋งŽด ๋ฐœƒ•˜ง€ ๋ชป•œ ฒƒด ๋” ๋‹—ฐ•˜‹  ƒฐ๋ฉ๋‹ˆ๋‹ค.

ธ๋ฆฌ  žฌ€•ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ œ ˜ ณผ ‚ฌ ๋ณดกฐ๋ฌผ„ ฐ€๋ฅดณ ค๋‹ˆ๋‹ค. œ ˜ ด๋ผ๋ฉด žฌ€•ˆ˜๋Š” ๋ฆฌ„ด๋˜๋Š” ฐ’˜ ข…๋ฅ˜(ƒ€ž…)ฐ€ ๋ชจ๋‘ ๋™•••œ‹ค๋Š” ฒƒ, žฌ€˜œ„ ๋ฒ—–ด๋‚˜๋Š” ง€  ผ๋ฐฉ—„œ œ ˜•••œ‹ค๋Š”   ๋“ฑ , ‚ฌ ๋ณดกฐ๋ฌผ๋กœ๋Š” Šคƒ˜ ƒƒœ๋ฅผ ธ๋ฆผœผ๋กœ ธ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•ด๋‚˜, ˆ˜‹„ ‚ฌšฉ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑžˆ  .

‹ˆœ™”

˜ฃผ˜ ‹ฌ๋ฆฌ•™ž กด Šค›ฐ๋Ÿฌ(John Sweller) ตˆ˜๋Š” ˆœ„œšจณผ(sequence effect)๋ผ ๋ถ€๋ฅด๋Š” ฒƒ„ ๋ช…–ˆŠต๋‹ˆ๋‹ค.

ˆœ„œšจณผ๋Š” ๋ณตžก•œ ฒƒณผ ‰ฌšด ฒƒžˆ„•Œ –ด๋А ฒƒ„ ๋จผ €  œ‹œ๋ฐ›๋А๋ƒ— ๋”ฐ๋ผ ๋ฌธ œ๋ฅผ ‘ธ๋Š”๋ฐ ฑธ๋ฆฌ๋Š” ‹œ„— ฐ ฐจฐ€ žˆ๋‹ค๋Š” ฒƒž…๋‹ˆ๋‹ค.

‹œž‘•˜๋Š” ˆ˜๋ฅผ •˜๋‚˜ ฃผ , Šน ••œ —ฐ‚ฐ„ ‚ฌšฉ•˜—ฌ  ••„ Šค…๋งŒ— ๋‹ค๋ฅธ ˆ˜๋กœ  „™˜‹œ‚ค๋Š” ๋ฌธ œ๋ฅผ ฃผ—ˆŠต๋‹ˆ๋‹ค. ˜ˆ๋ฅผ ๋“ค–ด, 8—„œ ‹œž‘•„œ ณฑ•˜ธฐ 2๋‚˜, ๋นผธฐ 7„ ‚ฌšฉ•„œ 6๋ฒˆ˜ Šค…๋งŒ— 15๋ฅผ ๋งŒ๋“œ๋Š” ๋ฌธ œž…๋‹ˆ๋‹ค.

•œ ธ๋ฃน€ ˜ˆ๋ฅผ ๋“ค€ ๋ณตžก•œ ๋ฌธ œ๋ฅผ ๋จผ €  œ‹œ๋ฐ›•˜ , ๋‹ค๋ฅธ ธ๋ฃน€ ๋‹ˆœ•œ ๋ฌธ œ(˜ˆปจ๋Œ€ 2๋ฒˆ๋งŒ— 8„ 9๋กœ ๋ฐ”พธ๋Š” ฒƒ) ๋‘œ๋ฅผ ๋จผ €  œ‹œ๋ฐ›•˜Šต๋‹ˆ๋‹ค.

ฒซ๋ฒˆงธ ธ๋ฃน€ •œ ๋ฌธ œ๋ฅผ ‘ธ๋Š”๋ฐ ‰  406ดˆ ƒ ฑธ๋ ง€๋งŒ, ๋‘๋ฒˆงธ ธ๋ฃน€ ๋ณตžก•œ ๋ฌธ œ๋ฅผ ‘ธ๋Š”๋ฐ 97ดˆ ฑธ๋  , „ธ ๋ฌธ œ๋ฅผ ๋ชจ๋‘ ‘ธ๋Š”๋ฐ 192ดˆ ๋ฐ–— ฑธ๋ฆฌง€ •Š•˜Šต๋‹ˆ๋‹ค.

ด๋ฅผ HanoiProblem—  šฉ•˜๋ฉด, 3œ(˜€ 5œ, 6œ)˜ ›๋ฐ˜ ๋ฌธ œฐ€ ๋ณตžก•˜‹ค๋ฉด, •˜๋‚˜, ๋‘˜ ๋“ฑ˜ ข€ ๋” ๋‹ˆœ•œ ๋ฌธ œ๋ฅผ ๋จผ € ’€  ฑฐธฐ„œ ๋ฌธ œ’€˜ "ตฌกฐ  œ ‚ฌ„ฑ"„ ๋ฐœฒฌ•ด ๋‚ธ ๋’ค— ข€ ๋” –ด๋ ฑฐ๋‚˜ ข€ ๋” ผ๋ฐ˜ ธ (ฆ‰ ›๋ฐ˜ nœ) ๋ฌธ œ— ๋„ „•˜๋Š” ฒƒšจณผ ด๋ผ๋Š” ๋งด ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ ๋ฌธ œฐ€ ๋„ˆ๋ฌด ๋‹ˆœ•„œ ๋ณตžก•  ฒฝšฐ—๋Š” ˜žˆ๋ ค 100œ, 200œ ๋“ฑ˜ ๋ณตžก/ผ๋ฐ˜ ฒฝšฐ๋ฅผ ƒฐ•˜๋Š” ฒƒด ๋„›€ด ๋  ˆ˜๋„ žˆŠต๋‹ˆ๋‹ค.

๋ฏธ๋กœฑฐŠฌ๋Ÿฌ๋‚ด๋ ˜ธฐ

ข…ข… ๋ฏธ๋กœฐ€ ๋„ˆ๋ฌด ๋ณตžก• •Œ ๋ชฉ ง€—„œ ฑฐพธ๋กœ ๋‚ด๋ ˜ค๋Š” ฒƒด ๋” „‹• •Œฐ€ žˆŠต๋‹ˆ๋‹ค. TestDrivenDevelopment๋„ ด ๋ฐฉ๋ฒ•„ ‚ฌšฉ•ฉ๋‹ˆ๋‹ค. ž‹ ›•˜๋Š” ฒƒ„ ปด“จ„—ฒŒ „ค๋ช…•ฃผ , ธ ๋ชฉ ง€—„œ ฑฐŠฌ๋Ÿฌ ๋‚ด๋ ˜ต๋‹ˆ๋‹ค.

HanoiProblemด ๋ณตžก•˜ฒŒ ๋Аปด„‹ค๋ฉด, šฐ„  ๋ชฉ ง€— ๋„‹•œ ƒƒœ, ฆ‰, ๋ชจ๋“  ›๋ฐ˜ด ๋‹ค๋ฅธ ๋ง‰๋Œ€ธฐ๋กœ ˜ฒจฐ€ žˆ๋Š” ƒƒœ๋ฅผ ƒ ••ฉ๋‹ˆ๋‹ค. ๋‹Œ—๋Š” —ฌธฐ—„œ ๋ฐ”๋กœ ง „˜ ƒƒœ๋กœ ฑฐŠฌ๋Ÿฌ ๋‚ด๋ ˜ต๋‹ˆ๋‹ค.

˜€, ‘„„ ๋Š–ด„œ ๋ณผ ˆ˜๋„ žˆŠต๋‹ˆ๋‹ค. –ดฐŒ๋˜—ˆฑด ๋ชจ๋“  ›๋ฐ˜˜ฒจฐ€๋ ค๋ฉด –ด๋А ˆœ„—”ฐ€๋Š” ฐ€žฅ ฐ ›๋ฐ˜ด ๋น„–ดžˆ๋Š” ๋ง‰๋Œ€ธฐ๋กœ ด๋™•ฐ€••ฉ๋‹ˆ๋‹ค. ƒ™ฉ—„œ ฐ€žฅ ฐ ›๋ฐ˜žˆ๋Š” ๋ง‰๋Œ€ธฐ—๋Š” ฐ ›๋ฐ˜ •˜๋‚˜๋งŒ žˆ„ ฒƒ , ›๋ฐ˜˜ฒจฐˆ ๋ง‰๋Œ€ธฐ๋Š” ๋น„–ดžˆ–ด••˜๋ฏ€๋กœ, ฒฐตญ ๋‘œ˜ ๋ง‰๋Œ€ธฐฐ€ ๋ชจ๋‘ ‚ฌšฉ๋˜ , ๋‚˜๋จธง€ •˜๋‚˜˜ ๋ง‰๋Œ€ธฐ—๋Š” ๋‚˜๋จธง€ ›๋ฐ˜๋“คด ๋ชจ๋‘ ฌธฐ ˆœœผ๋กœ Œ“—ฌžˆฒŒ ๋  ฒƒด๋ผ๋Š” ถ”ธก„ •  ˆ˜ žˆŠต๋‹ˆ๋‹ค. —ฌธฐ„œ •ž ๋’ค ƒ™ฉ„ ƒฐ•ด ๋ณด๋ฉด –ด๋–ค †ตฐฐ„ –ป„ ˆ˜ žˆŠต๋‹ˆ๋‹ค.

--JuNe



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:21
Processing time 0.0217 sec