KTUGFaq

KTUG FAQ

"Tough exercise"¿¡ ´ñ±Û ´õÇϱâ

·Î±×ÀÎ:
ºñ¹Ð¹øÈ£:
°¡ÀÔ
Today is a good day to bribe a high ranking public official.
FrontPage › ÀÛÀº³ª¹«/2006-05
May 27, 2006
Tough exercise
Submitted by ÀÛÀº³ª¹« @ 05-27 [09:05 am]
±âÁ¸ LittleTree/ReadingTeXbook/2006-05 ¿¡ ÀÖ´ø ³»¿ëÀε¥, ÁÙ¹Ù²Þ ¾Ë°í¸®Áò°ú °ü°è¾ø´Â ±ÛÀ» ¿©±â·Î ¿Å±é´Ï´Ù.

ÃÖ±Ù¿¡ ¸Å¿ì Èï¹Ì·Î¿î ÆäÀÌÆÛ¸¦ ¹ß°ßÇß½À´Ï´Ù. ±×·¡¼­ ±×°Í¶§¹®¿¡ ÅغÏÀб⸦ Àá±ñµ¿¾È Áß´ÜÇß½À´Ï´Ù. Áß´ÜÇÒ ÃæºÐÇÑ ÀÌÀ¯°¡ ÀÖ´Â ÆäÀÌÆÛÀÔ´Ï´Ù.

FIFO and LIFO sing the BLUes, Kees van der Laan, MAPS 92.2 (revision March 1996)

ÁÖ·Î ¸®½ºÆ® 󸮿¡ ´ëÇÑ Å×Å©´Ð(TeXnique) ³»¿ëÀ» ´ã°í ÀÖ´Â ÆäÀÌÆÛÀÔ´Ï´Ù. ¿©±â¼­ÀÇ ¸®½ºÆ® ó¸® ±â¹ý(Å×Å©´Ð)À̶ó ÇÔÀº º°°Í¾Æ´Õ´Ï´Ù. ¿ì¸®°¡ ÀÌ¹Ì ¾Ë°í ÀÖ´Â "²¿¸®Àç±Í±â¹ý"À̶ó°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. ²¿¸®Àç±Í±â¹ýÀÌ ÇÏ´Â ÀÏÀÌ ÁÖ¾îÁø ÀÎÀÚ¿¡¼­ ±× ÀÎÀÚ¸¦ ±¸¼ºÇÏ´Â ÅäÅ«µéÀ» ÇϳªÇϳª¾¿ ó¸®ÇÏ´Â °ÍÀ̾ú½À´Ï´Ù. ¿©±â¼­ ÀÎÀÚ¸¦ ¸®½ºÆ®¶ó°í ÇÏ°í, ÅäÅ« °¢°¢À» ¸®½ºÆ® ¿ä¼Ò(list element)¶ó°í »ý°¢ÇÏ¸é µË´Ï´Ù.

ÆäÀÌÆÛÀÇ Á¦¸ñ¿¡ ³ª¿ÍÀÖ´Â "FIFO"¶ó ÇÔÀº "First In First Out"ÀÇ ¾àÀÚÀÔ´Ï´Ù. ¿ì¸®¸»·Î ÇÏÀÚ¸é, ¸ÕÀú µé¾î¿Â ³ðÀ» ¸ÕÀú ³»º¸³½´Ù´Â ¶æÀÔ´Ï´Ù. Áï ¾î¶² ¸ÅÅ©·Î¿Í ±×ÀÇ ÀÎÀÚ·Î ¸®½ºÆ®°¡ ÁÖ¾îÁ³À»¶§, ¸®½ºÆ®ÀÇ ¿ä¼ÒµéÀÌ Â÷·Ê·Î ¸ÅÅ©·Î¿¡ Àû¿ëµÈ´Ù´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦µé¾î, \foo abc\oof°¡ ÀÖÀ»¶§, ¸¸¾à \foo°¡ FIFOÀÇ ²¿¸®Àç±Í±â¹ýÀ¸·Î ±¸ÇöµÈ ¸ÅÅ©·Î¶ó¸é, ±× ¸ÅÅ©·ÎÀÇ ¶æÀº ´ÙÀ½°ú °°½À´Ï´Ù.
\foo a \foo b \foo c
´Ù½Ã ÇÑ ¹ø ¼³¸íÇÏÀÚ¸é, ¸ÅÅ©·Î \foo¿¡ 'abc'¶ó´Â ¸®½ºÆ®°¡ ÀÔ·Â ½ºÆ®¸²(stream)À¸·Î µé¾î¿À¸é \foo´Â µé¾î¿À´Â ¼ø¼­´ë·Î ó¸®ÇÏ¿© ³»º¸³½´Ù´Â ÀǹÌÀÔ´Ï´Ù. ½¬¿î ³»¿ëÀÏÁöµµ ¸ð¸£´Âµ¥, ÀÛÀº³ª¹«°¡ ³Ê¹« ÀåȲÇÏ°Ô ¼³¸íÇÏ´Â °ÍÀº ¾Æ´Ñ°¡ ¸ð¸£°Ú½À´Ï´Ù. :(

±×·¸´Ù¸é, ÆäÀÌÆÛ Á¦¸ñ¿¡ ³ª¿ÍÀÖ´Â ´Ù¸¥ ÀÌ»óÇÑ ´Ü¾î "LIFO"´Â ¹«½¼ ¶æÀϱî¿ä? FIFO¸¦ ÈùÆ®»ï¾Æ »ý°¢Çغ¸¼¼¿ä. :) ±×·¸ÁÒ. ¹Ù·Î "Last In First Out"ÀÇ ¾àÀÚÀÔ´Ï´Ù. LIFO¸¦ Àû¿ëÇϸé \foo abc\oof´Â ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
\foo c \foo b \foo a
ÀÌÁ¦ ¾îÈÖ¿Í °³³ä¿¡ ´ëÇÑ ±âº»Áö½ÄÀº ¸ðµÎ °®Ãß¾ú½À´Ï´Ù. º»°ÝÀûÀ¸·Î ½ÃÀÛÇÏ°Ú½À´Ï´Ù. ÀÛÀº³ª¹«°¡ ÀÌ ÆäÀÌÆÛ¿¡ ¸Å·áµÈ °ÍÀº ±âÁ¸ÀÇ ¾Ë°íÀÖ´ø ²¿¸®Àç±Í±â¹ýÀÌ ³Ê¹«µµ ¿¤·¹°­½ºÇÏ°í È¿À²ÀûÀ¸·Î ±¸ÇöµÇ°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ÀÌ ÆäÀÌÆÛ¿¡¼­ ¸»ÇÏ´Â FIFO°¡ Àû¿ëµÈ ²¿¸®Àç±Í±â¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
\def\fifo#1{\ifx\ofif#1\ofif\fi \process#1\fifo} \def\ofif#1\fifo{\fi}
¿ì¸®°¡ ±âÁ¸¿¡ ¾Ë°íÀÖ´ø ²¿¸®Àç±Í±â¹ý°ú Á¤È®È÷ µ¿ÀÏÇÑ ÀÏÀ» ÇÕ´Ï´Ù. ¿ÀÈ÷·Á "\let\next=\foo"ÀÌ·± ½ÄÀÇ ÇÒ´ç¹®(assignment statement)ÀÌ ÇÊ¿ä¾ø½À´Ï´Ù. ÀÌ ¹æ¹ýÀÌ ±âÁ¸ÀÇ ¹æ¹ýº¸´Ù °£´ÜÇϸ鼭 È¿À²ÀûÀ̶ó°í ÇÕ´Ï´Ù. ±×¸®°í ÀÌ \fifoÀÇ ÀÀ¿ëÀ¸·Î ´Ü¾îµéÀ» ó¸®ÇÏ´Â ¹æ¹ýÀº ¾î¶»°Ô ÇÏ¸é µÉ±î¿ä? ÀÌÀü¿¡ ÀÛÀº³ª¹«°¡ ÀÛ¼ºÇÑ TeX ¸ÅÅ©·Î ÀÛ¼º ±â¹ýÀ̶ó´Â ±ÛÀ» º¸¸é, ²¿¸®Àç±Í±â¹ý°ú µ¿ÀÏÇÏ°í ½ºÆäÀ̽º¸¸À¸·Î ±¸ºÐÇß´ø °ÍÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù. ¸¶Âù°¡Áö·Î ¿©±â¼­µµ ½ºÆäÀ̽º¸¦ ±¸ºÐÀÚ(delimeter)·Î »ç¿ëÇÏ¸é µË´Ï´Ù. ´ÙÀ½°ú °°½À´Ï´Ù.
\def\fifow#1 {\ifx\wofif#1\wofif\fi \processw{#1}\ \fifow} \def\wofif#1\fifow{\fi}
±âÁ¸ÀÇ ¹æ¹ýº¸´Ù ´Ü¼ø ¸í·áÇÕ´Ï´Ù. À§ µÎ°³ÀÇ ¸ÅÅ©·Î¿¡¼­ \process, \processw¸¸ ÇÏ°íÀÚ ÇÏ´Â ÀÏÀÇ ¸ñÀû¿¡ ¸Â°Ô ±¸ÇöÇØ ÁÖ¸é µË´Ï´Ù. ½±°í °£´ÜÇÕ´Ï´Ù. :))

±×·¯¸é À§ÀÇ µÎ°³ÀÇ ¸ÅÅ©·Î¸¦ °¡Áö°í ÅØºÏ 67ÆäÀÌÁöÀÇ ¿¬½À¹®Á¦11.5°¡ ¾ó¸¶³ª ½±°Ô ÇØ°áµÇ´ÂÁö º¸°Ú½À´Ï´Ù. ±× ¿¬½À¹®Á¦¸¦ ¾à°£ °£·«È­ Çϸé, ´ÙÀ½°ú °°½À´Ï´Ù. \demobox¶ó´Â ¸ÅÅ©·Î¸¦ Á¤Çϴµ¥,
\demobox{Tough exercise}
¶ó°í ÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ ¾ò´Â ¸ÅÅ©·ÎÀÔ´Ï´Ù.




Àß »ìÆ캸½Ã¸é, ¿ì¼± ´Ü¾îº°·Î ó¸®ÇÏ°í, ±× ´ÙÀ½¿¡ °¢ ´Ü¾îÀÇ ±ÛÀÚ¸¶´Ù ¹Ú½º¸¸ ±×·ÁÁÖ¸é µÇ´Â °ÍÀÔ´Ï´Ù. µû¶ó¼­ À§ÀÇ µÎ°³ÀÇ ¸ÅÅ©·Î \fifo...\ofif ¿Í \fifow...\wofif °¡ »ç¿ëµÇ´Â °ÍÀÔ´Ï´Ù. ÀÌÁ¦ \process¿Í \processw¸¸ Á¤ÀÇÇϸé ÇØ°áµÇ´Âµ¥, À̶ÇÇÑ ½¬¿ö¼­ °¢ ±ÛÀÚ¸¦ ó¸®ÇÏ´Â \process°¡ ÇÒ ÀÏÀº ±× ±ÛÀÚ¸¦ µÑ·¯½Î´Â ¹Ú½º¸¦ ±×¸®´Â ÀÏÀÌ°í, \processw°¡ ÇÒ ÀÏÀº ÁÖ¾îÁø ÀÎÀÚ¿¡¼­ ´Ü¾î¸¶´Ù \fifo#1\ofif¸¦ È£ÃâÇÏ¸é µË´Ï´Ù. Áï, °¢ ´Ü¾î¸¶´Ù ¹Ú½º¸¦ ±×¸®´Â ¸ÅÅ©·Î¸¦ È£ÃâÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù. !!!

¼Ò½º´Â ´ÙÀ½°ú °°½À´Ï´Ù. (DohyunKim´ÔÀÌ ÁöÀûÇØÁֽŠ°Í°ú Á¦½ÃÇØ ÁֽŠÇØ°áÃ¥À¸·Î ¼Ò½º¸¦ ÀϺΠ¼öÁ¤ÇÏ¿´½À´Ï´Ù.)
\def\fifo#1{\ifx\ofif#1\ofif\fi \process#1\fifo} \def\ofif#1\fifo{\fi} \def\fifow#1 {\ifx\wofif#1\wofif\fi \processw{#1}\ \fifow} \def\wofif#1\fifow{\fi} \def\processw#1{\fifo#1\ofif} \def\process#1{\boxit#1} \def\boxit#1{\setbox0=\hbox{#1}% \hbox{\lower\dp0% \vbox{\offinterlineskip\hrule \hbox{\vrule\phantom#1\vrule}\hrule}% }% } \def\demobox#1{\leavevmode\fifow #1 \wofif \unskip{} } \demobox{Tough exercise}
¹®Á¦¸¦ ¿ø·¡ÀÇ ¹®Á¦¿¡¼­ ¾à°£ °£·«È­ Çϱä ÇßÁö¸¸, Knuth°¡ Á¦½ÃÇÑ ¿ø·¡ Çش亸´Ù ¸¹ÀÌ °£´ÜÇØ Áø°ÍÀ» È®ÀÎÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

¸¶Áö¸·À¸·Î LIFO¸¦ Àû¿ëÇÑ ¸ÅÅ©·Î \lifo...\ofil´Â ¾î¶»°Ô ±¸ÇöÇÏ¸é µÉ±î¿ä? ÇÑ ¹ø Çغ¸¼¼¿ä. ÈùÆ®: \fifo...\ofif ¸¦ Á¶±Ý¸¸ ¹Ù²Ù¸é µË´Ï´Ù. \process¸¦ ¾ðÁ¦ ½ÇÇàÇÏ´À³Ä°¡ ¹®Á¦ÀÔ´Ï´Ù.

\demobox{Tough exercise}abcde. ÇßÀ» ¶§ traceÇغ¸¸é
\fifow #1 ->\ifx \wofif #1\wofif \fi \processw {#1}\ \fifow 
#1<-\wofif \unskip .~abcde.
\demoboxÀÇ ÀÎÀÚ ¹Ù±ùÀÇ °Íµµ ¹°°í µé¾î°©´Ï´Ù. ÀÌ°ÍÀÌ ÀǵµÇÑ ¹ÙÀÎÁö¿ä? -- DohyunKim 2006-05-10 11:42:22

±×·²¸®°¡ ÀÖ°Ú½À´Ï±î?

³í¹®¿¡ ÁÖ¾îÁø ¸ÅÅ©·Î·Î \demobox¸¦ ¸¸µé·Á´Ùº¸´Ï ÀǵµÇÏÁö ¾Ê°Ô, ±×·¸°Ô µÈ°Í °°½À´Ï´Ù. ÇÑ ¼ö °¡¸£Ä§À» Áֽʽÿä.

  1. \demobox¸¦ ¾î¶»°Ô Á¤ÀÇÇÏ¸é ¹Ù·ÎÀâÀ» ¼ö Àִ°¡? (¾îµð°¡ ¾î¶»°Ô À߸øµÈ °ÍÀΰ¡?)
  2. Åؼҽº´Â ¾î¶»°Ô µð¹ö±ëÇϴ°¡? (gdb¸¦ ÀÌ¿ëÇϵíÇÑ ¹æ¹ýÀÌ Àִ°ÍÀΰ¡?, À§¿¡ trace´Â ¾î¶² ¹æ¹ýÀ¸·Î ÇÑ °ÍÀΰ¡?)

ÁöÀûÇØ Áּż­ °¨»çÇÕ´Ï´Ù. ±×¸®°í °ü½ÉÀ» °¡Áö°í ÀоîÁּż­ ´õ¿í °¨»çÇÕ´Ï´Ù. -- ÀÛÀº³ª¹« 2006-05-10 14:08:31

¾Æ, \tracingmacros¶ó´Â ÇÁ¸®¹ÌƼºê°¡ ÀÖ±º¿ä. µÎ¹ø° Áú¹®Àº ¾ø´ø°É·Î ÇØÁÖ¼¼¿ä. ȤÀº ÅØ µð¹ö±ëÇÏ´Â ¾Ö¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ¸¸é ¾Ë·ÁÁÖ½Ã¸é ´õ¿í °¨»çÇÏ°Ú½À´Ï´Ù. :) -- ÀÛÀº³ª¹« 2006-05-10 14:25:30

µÎ¹ø° Áú¹®Àº ÀÚ´äÇϼ̰í^^ (TeX by Topic¿¡µµ ÇÑ Ã©ÅÍ°¡ ÇҾֵŠÀÖ½À´Ï´Ù. ¾Ö¿ëÇÏ´Â ¹æ¹ýÀº µû·Î ¾ø°í ´ë°³ ±ÍÂúÀ¸´Ï±î \tracingall ÇÕ´Ï´Ù.)

ù¹ø°´Â Àúµµ Á» °í¹ÎÇߴµ¥ ´ÙÀ½°ú °°ÀÌ ÇÏ¸é ¾î¶³±î ÇÕ´Ï´Ù.
\def\demobox#1{\leavevmode\fifow #1 \wofif \unskip{} }
½ºÆäÀ̽º¸¦ ³Ö¾îÁÖ´Â °ÅÁÒ. ±×³ÉÀº ¾È µé¾î°¡´Ï±î {}·Î °æ°è¸¦ °¥¶ú½À´Ï´Ù. -- DohyunKim 2006-05-10 15:48:05

±×·±µ¥ LIFO ¼÷Á¦ ¾î·Æ³×¿ä. ÈùÆ®¸¦ Á»¸¸ ´õ ÁÖ½ÃÁÒ... -.-;; -- DohyunKim 2006-05-10 15:50:18

ÀÎÀÚ¸¦ µÎ °³ ÃëÇؼ­ #2 lifo Àç±Íó¸®ÇÏ°í ±× ´ÙÀ½¿¡ process#1ÇÏ¸é µÉ±î¿ä? ÈùÆ® ÁÖ¼¼¿ä... µÎ¹ø° ÀÎÀÚ°¡ ¾øÀ¸¸é.... ? -- Karnes 2006-05-10 16:07:00

½ºÆäÀ̽º¸¦ µô¸®¹ÌÅÍ·Î ÇÏ¸é µÇ´Â±¸³ª. (´ç¿¬ÇÏÁö. ÀÌ ¹Ùº¸¾ß... ÀÌ ½¬¿î°ÍÀ»...ÂÁ. ³ª´Â ¿ÖÀÌ·¯Áö... :( ÀÚÃ¥À̾ú½À´Ï´Ù.) °¨»çÇÕ´Ï´Ù. :)

¿ª½Ã KTUGÀÇ ÃÊÀýÁ¤ °í¼ö´ÔµéÀ̶ó Á¶±Ý¾¿ Á¶±Ý¾¿ Á¤´ä¿¡ Á¢±ÙÇØ °¡½Ã´Â±º¿ä. Àú´Â ÀÌ¹Ì ÀÌ ÆäÀÌÆÛ¸¦ ºÁ¼­ ÀúÀÚ°¡ Á¦½ÃÇÏ´Â ÇعýÀ» ¾Ë¾Æ¹ö·Á¸° °ÍÀÌ ÈÄȸµË´Ï´Ù.

³×, ±×·¸½À´Ï´Ù. ÀÎÀÚ¸¦ µÎ °³¸¦ ÃëÇÏ´Â ÇüÅ·ΠÇÏ°í, Áï ÀÏ´Ü ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÏ°í,
\def\lifo#1#2\ofil{
...
±×·¯¸é, ÀÚ¿¬½º·´°Ô ³ª¿À´Â Áú¹®ÀÎ "#2°¡ ¾øÀ¸¸é ¾î¶»°Ô Çϳª?" ÀÌ°ÍÀº Ç÷¹ÀÎÅØ¿¡¼­ Á¦°øÇÏ´Â ¸ÅÅ©·Î (ȤÀº ¿ì¸®µéÀÌ Á÷Á¢ ¸¸µé¼ö ÀÖ´Â) \empty¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ.
\def\lifo#1#2\ofil{\ifx\empty#2\empty\ofil\fi
  ...
ÀÌ ´ÙÀ½¿¡´Â \lifo...\ofil¸¦ È£ÃâÇÏ°í, ¸¶Áö¸·À¸·Î \process#1¸¦ ó¸®ÇÏ´Â °ÍÀÔ´Ï´Ù. Á¤´äÀÌ ¾Æ´Ñ ÈùÆ®¸¦ ´Þ¶ó°í ÇϼÌÀ¸´Ï, ¿©±â±îÁöÀÔ´Ï´Ù. :) ÀúÀÚ°¡ Á¦½ÃÇÏ´Â ÇØ´äÀ» ¾Ë·Áµå¸± ¼öµµ ÀÖÀ¸³ª, °ü½ÉÀÌ ÀÖÀ¸½Ã¸é, ´õ Çغ¸¼Å¼­ ÇØ´äÀ» ¾òÀ¸½Ã´Â °Íµµ Àç¹ÌÀÖÀ» °Í °°½À´Ï´Ù. ¾Æ´Ï¸é, ÀÌ ÆäÀÌÆÛ°¡ ÀÎÅͳݿ¡ ³Î·ÁÀÖÀ¸´Ï ´Ù¿î¹Þ¾Æ¼­ È®ÀÎÇØ º¸½Ç ¼öµµ ÀÖ°Ú½À´Ï´Ù. :)

°¨»çÇÕ´Ï´Ù. -- ÀÛÀº³ª¹« 2006-05-10 16:41:23
À̸§:

¼­¸íÇÏÁö ¾Ê±â