4.5. ½ºÅÃ(stack)

±èº¸¹®

(¿Ã¸° ³¯ : 2001-05-28)

 

 

 

 

 

 

 

 

 

 

 


½ºÅÃÀº Ǫ½Ã´Ù¿î ¸®½ºÆ®(pushdown list) ¶Ç´Â ÈÄÀÔ ¼±Ãâ(LIFO; last-in first-out) ¸®½ºÆ®¶ó°íµµ ºÒ¸®¿ì´Âµ¥ ÀÌÀ¯´Â µ¥ÀÌŸÀÇ »ðÀÔ°ú »èÁ¦°¡ ÇÑÂÊ ³¡¿¡¼­¸¸ ÀϾ¹Ç·Î °¡Àå ³ªÁß¿¡ »ðÀÔÇÑ µ¥ÀÌŸ°¡ Á¦ÀÏ ¸ÕÀú »èÁ¦µÇ±â ¶§¹®ÀÔ´Ï´Ù.

 

±×·³ ÀÌ·¸°Ô °£´ÜÇÑ ½ºÅÃÀ» ÆÄÀ̽㿡¼± ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö Àá½Ã º¸°Ú½À´Ï´Ù.

ÀÏ¹Ý C ¾ð¾î¿¡¼­¿Í´Â ´Þ¸® ÆÄÀ̽㿡¼± ¾Õ¿¡ ±Û¿¡¼­ ¸®½ºÆ®¶ó´Â ÀÚ·áÇüÀ» º¸¼ÌÀ» °ÍÀÔ´Ï´Ù.

(¾È º¸¼Ì´Ù¸é Àá½Ã ¾ÕÀ¸·Î À̵¿Çϼż­ ÇÔ º¸½Ê¼î~ ^^;) ¸®½ºÆ®¶ó´Â ÀÚ·áÇü¿¡¼± append(³¢¿ö ³Ö±â)¿Í pop(»©±â)°¡ ÀÖ½À´Ï´Ù.

## C¿¡¼± push, pop À̶ó°í ÇÕ´Ï´Ù. °ÅÀÇ ºñ½ÁÇÏÁ®?

 

## Áö±ÝºÎÅÏ Python 2.0 (#1, May 11 2001, 19:51:31)

[GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2

Type "copyright", "credits" or "license" for more information.

ÀÌ ³ÑÀ» °¡Áö°í ½Ç½ÀÇØ º¸°Ú½À´Ï´Ù ##

 

ex)

>>> list = []

>>>

>>> dir(list)

['append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

 

¿©±â¿¡ 'append'¶ó´Â ³Ñ°ú 'pop'¶ó´Â ³ÑÀÌ ÀÖ½À´Ï´Ù. ±×¿Ü¿¡ ¸¹Àº °ÍµéÀÌ Àִµ¥ ÀÚ¼¼ÇÑ »çÇ×Àº ·¹ÆÛ·±½º¸¦ º¸½Ê¼î...(Àúµµ ¾ÆÁ÷ Ãʺ¸¶ó¼­....¤Ñ¤Ñ;;)

 

ÀÏ´Ü ÀڷḦ ³Ö½À´Ï´Ù. ÇÑ 100°³ Á¤µµ ³Ö¾î º¼±î¿©~?

 

>>> list=[]

>>> for i in range(100):

...     list.append(i)

...

>>> list

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

>>>

 

¿ì¿Í ´Ü¼û¿¡ 100°³°¡ µé¾î°¬½À´Ï´Ù. (Àúµµ ½Å±âÇÒ µû¸§ÀÔ´Ï´Ù. ^^*)

 

ÀÏ´Ü À§¿¡¼­ Á¤ÀÇ ÇßµíÀÌ Ã¹¹øÂ° µé¾î°¡´Â '0'ÀÌ ½ºÅÿ¡¼­´Â °¡Àå ³ªÁß¿¡ ³ª¿À°Ô µË´Ï´Ù. ¿Ö³Ä±¸¿©...

LIFO °¡Àå ³ªÁß¿¡ µé¾î°£ ³ÑÀÌ Á© »¡¸® ³ª¿Â´Ù´Â À§¿¡ Á¤ÀǸ¦ µû¶ó¼­Á®...

°£´ÜÇÏ°Ô ½ºÅÃÀº Å״Ͻº°ø ´ã´Â Åë ¾Æ½ÃÁ®? µÕ±×·¸°Ô »ý±ä°Å 10°³°¡ µé¾î°£´Ù°í »ý°¢ÇϽøé...

Á¦ÀÏ Ã³À½¿¡ ³ÖÀº °øÀº °¡Àå ³ªÁß¿¡ ³ª¿À°ÚÁ®? ¿Ö³Ä¸é ¹ØÀÌ ¾È ¶Õ·Á Àֱ⠶§¹®ÀÌÁ®...

¹ØÀ» ¶Õ´Â ´Ù¸é °¡Àå óÀ½¿¡ µé¾î°£ ³ÑÀÌ °¡Àå »¡¸® ³ª¿À°ÚÁ®... ±×°Ç µÚ¿¡ ¸»ÇÒ Å¥ ÀÔ´Ï´Ù!!

 

±×·³ 100°³¿¡¼­ ÇѰ³¸¸ »©º¸ÁÒ...

 

>>> list.pop()

99

>>> list

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98]

>>>

 

º¸½Ã¸é list.pop() Çß´õ´Ï 99¶ó´Â °ªÀÌ ÂïÈ÷¸é¼­ ´Ù½Ã list ¸¦ ¶§¸®´Ï 99°¡ ¾ø¾îÁ³½À´Ï´Ù.

 

%*% ÁÖÀÇ!! ¸¸ÀÏ list.pop(0) À̶ó°í ÇϸéÀº Á¦ÀÏ ¾Õ¿¡ °ªÀÎ 0ÀÌ ³¯¾Æ°©´Ï´Ù.

 ¿Ö³Ä¸é ¸®½ºÆ®´Â ¹øÁö°ªÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ±×·¯´Ï±î...ÇöÀç...0 ºÎÅÍ 99±îÁö´Â 0 ºÎÅÍ 99±îÁö¿¡ ¹øÁö °ªÀ» °¡Áö°í ÀÖ´Â °Å³ª ´Ù¸§ÀÌ ¾øÁÒ...

±×·¡¼­ Å¥¿¡ ±¸Çöµµ Á¤¸» ½±°Ô °¡´É ÇÕ´Ï´Ù.

±×¿Ü¿¡ µ¥Å©³ª ´Ù¸¥ ÀڷᱸÁ¶Çüµµ ÀÖÁö¸¸...ÀÏ´Ü ½ºÅðú Å¥¸¦ ¾Æ½Ã¸é ´Ù¸¥°Ç...½±°Ô ½±°Ô :-)

 

ÀÌÁ¦ Á» °¨ÀÌ ÀâÈ÷½Ã´ÂÁö¿ä...

 

ÇÏÁö¸¸ ¸¸¾à¿¡ ½ºÅÿ¡¼± °¡¿îµ¥ °ªÀ» »¬·Á¸é ±×°Ç ¸»ÀÌ ¾ÈµÇÁ®...¿ì¸®°¡ Á¤ÀÇÇÑ °Í¿¡ ¾î±ß³ª°í ¶Ç! ±×·¸°Ô ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.

ÇÏÁö¸¸ ÀÌ·± ½ºÅÃÀº ÄÄÇ»ÅÍ¿¡¼­ ¸¹ÀÌ »ç¿ëµÇ´Â µ¥ÀÌŸ ŸÀÔÀÔ´Ï´Ù.

 

±×·±µ¥!! ÆÄÀ̽㠸®½ºÆ®¿¡¼± ±×°Ô ¶Ç µË´Ï´Ù.. ¤Ð¤Ì È¥µ¿ÇÏÁö ¸¶½Ã±æ...ÀÌ°Ç ¾îµð±îÁö³ª Á¤ÀÇ ÀÔ´Ï´Ù.

 

(Á¶±Ý Àд ±ÛÀÌ ¸¹´õ¶óµµ ±×³É Çѹø Á¤µµ Àоî Áֽñæ...¤Ð__¤Ð)

 

$ Key Point!!

 

ÆÄÀ̽㿡¼± ½ºÅÃÀ» °£´ÜÇÏ°Ô ÀÌ¿ëÇØ¼­ ¿øÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®½ºÆ®¶ó´Â °Í¸¸ ¾Ë¸é¿©~ ^^;