4.7. ¿¬½À¹®Á¦ (ÄÄÇ»ÅÍ¿¡ ÇÁ·Î±×·¥ ºÐ¹è)

(°íÄ£ ³¯ : 2001-09-05)

¾È³çÇϼ¼¿ä~.

Áö³­ µÎ °­Á´ ¹èÀç´ëÇб³ ÄÄÇ»ÅͰøÇаú¿¡¼­ °øºÎÇϽô ±èº¸¹® ´Ô²²¼­ ¼ö°íÇØÁּ̽À´Ï´Ù.

Àú´Â ±× µ¿¾È ¼÷Á¦ Á» ÇÏ°í¡¦ ^^

 

°­Á¸¦ º¸¼Å¼­ ¾Æ½Ã°ÚÁö¸¸ ½ºÅðú Å¥¶ó´Â °ÍÀº ÄÄÇ»ÅͰ¡ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â ¹æ½ÄÀ» °³³äÀûÀ¸·Î ³ªÅ¸³½ °ÍÀ̱¸¿ä, ÆÄÀ̽㿡¼­µµ ¸®½ºÆ®¸¦ ÀÌ¿ëÇØ¼­ °£´ÜÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¼Ò°³ÇØ µå¸° °ÍÀÔ´Ï´Ù.

»ç½Ç ¿ÕÃʺ¸·Î¼­´Â ¾î·Á¿î ³»¿ëÀÏ ¼öµµ ÀÖÁö¸¸ ´Ù¸¥ Ã¥¿¡¼­ º¸½Ã°í °í¹ÎÇÏ´Â ºÐÀÌ °è½Ç±îºÁ ¼³¸íµå·È±¸¿ä, ¾ðÁ¨°¡ ÀÚ¼¼È÷ ¹è¿ì½Ç ±âȸ°¡ ÀÖÀ» °Å¿¹¿ä.

Áö±ÝÀº ±×¸²¸¸ ÀÌÇØÇϼŵµ ÃæºÐÇÕ´Ï´Ù.

 

¿À´ÃÀÇ ¿¬½À¹®Á¦´Â ´ÙÀ½ Ä«Æä¿¡¼­ º» ÄûÁîÀε¥, ¿ÕÃʺ¸ ÆÄÀ̽ãÀÇ °Ô½ÃÆÇ¿¡µµ ¿Ã·Á¼­ ÇÔ²² Ç®¾îº¸¾Ò´ø °ÍÀ̶ø´Ï´Ù.

¹®Á¦¸¦ º¸½Ç±î¿ä?

 

¹®Á¦]
ÄÄÇ»ÅͰ¡ ¸î ´ë ÀÖ°í ¿¬»êÇØ¾ßÇÒ ÇÁ·Î±×·¥µµ ¸î °³ ÀÖ½À´Ï´Ù.
°¡Àå ÃÖÀûÈ­ µÈ ÇÁ·Î±×·¥ ´ë ÄÄÇ»ÅÍ ºÐ¹è¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϼ¼¿ä.

 

¿¹)

ÄÄÇ»ÅÍ´Â 2´ë°¡ ÀÖ°í, ÇÁ·Î±×·¥ÀÇ ¼öÇà½Ã°£Àº °¢ 3ºÐ, 5ºÐ, 2ºÐÀ̶ó¸é, ÄÄÇ»ÅÍ Çϳª´Â 3ºÐ, 2ºÐÂ¥¸® ÇÁ·Î±×·¥À» ¼öÇàÇÏ°í ´Ù¸¥ ÄÄÇ»ÅÍ´Â 5ºÐÂ¥¸® ÇÁ·Î±×·¥À» ¼öÇàÇÏ¸é µË´Ï´Ù.

ÀÔ·Â

computer : 2

program : 3, 5, 2

 

Ãâ·Â

computer1 : 5

computer2 : 3, 2

 


¾î¶°¼¼¿ä? Á» ¾î·ÆÁÒ?

Àúµµ ÀÌ ¹®Á¦¸¦ º¸°í ¹®Á¦°¡ ¹«½¼ ¶æÀÎÁö ¸ô¶ó¼­ ÇÑÂü Çì¸Ì´ä´Ï´Ù.

±×·¯³ª ÃѸíÇϽŠ¿©·¯ºÐÀº ±Ý¹æ ÀÌÇØÇϼÌÀ¸¸®¶ó »ý°¢ÇÕ´Ï´Ù.

ÀÌÁ¦ ¹®Á¦¸¦ Ç®¾îº¼ÅÙµ¥¿ä, ¾Æ·¡ÀÇ ÇØ¼³À» º¸½Ã±â Àü¿¡ ¹®Á¦¸¦ ´Ù¸¥ °÷¿¡ ¿Å°Ü³õ°í Àá½Ã »ý°¢À» ÇØº¸½Ã±â ¹Ù¶ø´Ï´Ù. °¡´ÉÇϸé Á÷Á¢ Ç®¾îº¸´Â °ÍÀÌ ÁÁÀ¸´Ï±î¿ä.

 

ÄÄÇ»ÅÍ ¿©·¯ ´ë°¡ ÇÁ·Î±×·¥À» ³ª´²¼­ ¼öÇàÇÑ´Ù¸é, °¢°¢ÀÇ ÄÄÇ»ÅÍ¿¡°Ô °°Àº ¾çÀÇ ÀÏÀ» Á༭ °°ÀÌ ³¡³»´Â °ÍÀÌ ÁÁ°ÚÁÒ?

¿¹¿¡¼­´Â ÃÑ 10ºÐ µ¿¾È ÇÒ ÀÏÀ» ÄÄÇ»ÅÍ µÎ ´ë¿¡°Ô ³ª´²ÁÖ´Â °Å´Ï±î °¢°¢ 5ºÐ ¾¿ ÀÏÀ» ½ÃŰ¸é µÇ´Â °Å±¸¿ä.

 

¸¸¾à, ¼öÇàÇÒ ÇÁ·Î±×·¥ Áß¿¡ Æò±Õº¸´Ù ´õ ¿À·¡ °É¸®´Â °ÍÀÌ ÀÖ´Ù¸é, ±×·¯´Ï±î ÇÁ·Î±×·¥ÀÌ 7ºÐ, 3ºÐ µÎ °³°¡ ÁÖ¾îÁö¸é ¾î¶»°Ô ³ª´²ÁÖ´Â °ÍÀÌ ÁÁÀ»±î¿ä?

ÇÒ ¼ö ¾øÀÌ ÇÑ ´ë´Â 7ºÐ µ¿¾È, ´Ù¸¥ ÇÑ ´ë´Â 3ºÐ µ¿¾È ÀÏÀ» ÇØ¾ß°ÚÁÒ?

7ºÐ Â¥¸®¸¦ 5ºÐ, 2ºÐÀ¸·Î Âɰ³¼­ ³Ñ°ÜÁֶ󱸿ä?

½Ã·Î~.

 

Áö±Ý±îÁö »ìÆìº» °ÍÀ» ¹ÙÅÁÀ¸·Î ¹®Á¦ ÇØ°áÀ» À§ÇÑ ³í¸®¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù.

 

ÇÁ·Î±×·¥µéÀ» ÀüºÎ ¼öÇàÇÏ´Â µ¥ °É¸®´Â ÃѼöÇà½Ã°£À» ±¸ÇÑ´Ù.

ÃѼöÇà½Ã°£À» ÄÄÇ»ÅÍ ´ë¼ö·Î ³ª´©¾î °¢°¢ÀÇ ÄÄÇ»ÅÍÀÇ Æò±Õ¼öÇà½Ã°£À» ±¸ÇÑ´Ù.

¸¸¾à Æò±Õ¼öÇà½Ã°£º¸´Ù ´õ ¿À·¡ °É¸®´Â ÇÁ·Î±×·¥ÀÌ ÀÖÀ¸¸é:

             ±×³É ÄÄÇ»ÅÍ¿¡°Ô ÁØ´Ù.

Æò±Õ ¼öÇà½Ã°£º¸´Ù ª°Ô °É¸®´Â °ÍµéÀº:

             Æò±Õ¼öÇà½Ã°£¸¸Å­ ¸ð¾Æ¼­ ÄÄÇ»ÅÍ¿¡°Ô ÁØ´Ù.

 

óÀ½¿¡´Â ÀÌ·± ½ÄÀ¸·Î ¹®Á¦¸¦ Ç®¾ú´Âµ¥, ³ªÁß¿¡ ´Ù½Ã º¸´Ï±î º¹ÀâÇϸ鼭µµ ºñÈ¿À²ÀûÀ̶ó´Â »ý°¢ÀÌ µé´õ±º¿ä.

±×·¡¼­ ¸î³¯¸îÀÏÀ» °í¹ÎÇÏ´Ùº¸´Ï ±â¹ßÇÑ ¾ÆÀ̵ð¾î°¡ ¶°¿Ã¶ú½À´Ï´Ù.

 

»õ·Î¿î ÇØ°á¹æ¹ýÀÇ ÇÙ½ÉÀº ¡®°¡Àå °¡º­¿î ¹Ù±¸´Ï¿¡ »§À» ´ã´Â´Ù¡¯¶ó´Â °ÍÀÔ´Ï´Ù.

¡®ÄÄÇ»ÅÍ¡¯¿Í ¡®¼öÇàÇÒ ÇÁ·Î±×·¥¡¯ ´ë½Å ¡®¹Ù±¸´Ï¡¯¿Í ¡®»§¡¯À̶ó°í »ý°¢ÇÑ °ÍÀÌÁÒ.

±×·¸°Ô µÇ¸é, ÄÄÇ»ÅÍ¿¡°Ô ÇÁ·Î±×·¥À» ºÐ¹èÇÏ´Â °ÍÀº ¹Ù±¸´Ï¿¡ »§À» Çϳª¾¿ ´ã´Â °Í°ú Èí»çÇÏÁö¿ä.

 

¹Ù±¸´Ï¸¦ ÁغñÇÑ´Ù.

¹Ù±¸´Ï¿¡ ´ãÀ» »§µéÀ» Å©±â¼øÀ¸·Î Á¤·ÄÇÑ´Ù.

»§À» ¸ðµÎ ¹Ù±¸´Ï¿¡ ´ãÀ» ¶§±îÁö:

°¡Àå °¡º­¿î ¹Ù±¸´Ï¿¡ °¡Àå Å« »§À» ´ã´Â´Ù.

°á°ú¸¦ µ¹·ÁÁØ´Ù.

 

ÀÌ ³í¸®¸¦ ÇÁ·Î±×·¥À¸·Î ±¸ÇöÇÑ °ÍÀÌ ¾Æ·¡ÀÇ ¿¹Á¦ÀÔ´Ï´Ù.

´ëÈ­½ÄÀ¸·Î ÀÛ¾÷ÇÏ´Â °Íº¸´Ù ÅØ½ºÆ® ¿¡µðÅ͸¦ »ç¿ëÇØ¼­ ÇÁ·Î±×·¥ ÆÄÀÏ·Î ÀÛ¼ºÇÏ´Â °ÍÀÌ ÁÁ°ÚÁÒ?

 

# prg2com.py

 

def prg2com(inlist, coms):

    outlist = []

    sumout = []

    for x in range(coms):

        outlist.append([])

        sumout.append(0)

 

    inlist.sort()

    inlist.reverse()

 

    for bread in inlist:

        lowbasket = sumout.index(min(sumout))

        outlist[lowbasket].append(bread)

        sumout[lowbasket] += bread

 

    return outlist       

 

print prg2com([3,15,6,22,13,2], 3)

 

Á¤¸» °£´ÜÇÏÁÒ? ¿¹Àü¿¡ ¼Ò°³Çصå·È´ø Ç®À̸¦ º¸¼Ì´ø ºÐÀ̶ó¸é ³î¶ó½Ç °Å¿¹¿ä.

Àú ½º½º·Îµµ °¨ÅºÇ߰ŵç¿ä.*^^*

 

ÇÁ·Î±×·¥À» ÀüüÀûÀ¸·Î º¸¸é prg2com()À̶ó´Â ÇÔ¼ö¸¦ Çϳª Á¤ÀÇÇØµÎ°í, ¸Ç ¸¶Áö¸· ÁÙ¿¡¼­ ±× ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ÇüÅÂÀÔ´Ï´Ù.

±×¸®°í, prg2com() ÇÔ¼ö´Â inlist¿Í coms¶ó´Â µÎ °³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾Æ¼­, outlist¸¦ °á°ú·Î µ¹·ÁÁÝ´Ï´Ù.

¹®Á¦¿¡¼­ ÀԷ°ú Ãâ·ÂÀ» ¾Æ·¡¿Í °°ÀÌ ÇÑ´Ù°í Çߴµ¥, ¿¹Á¦¿¡¼­´Â ´Ü¼øÇÏ°Ô ¸®½ºÆ®¿Í º¯¼ö¸¦ ÀԷ¹ްí, ¸®½ºÆ®¸¦ Ãâ·ÂÇϵµ·Ï ó¸®Çß½À´Ï´Ù. ±×·¸°Ô ÇÏ´Â °ÍÀÌ °£ÆíÇÏ°í ¹®Á¦¿¡ ÁýÁßÇϴµ¥ µµ¿òÀÌ µÇ´Â °Í °°¾Æ¼­¿ä.

ÀÏ´Ü ÇÔ¼ö¸¸ ¸¸µé¾îµÎ¸é ÀÔÃâ·ÂÀ» ±¸ÇöÇÏ´Â °ÍÀº ½ÄÀº Á× ¸Ô±â°ÚÁÒ?

 

ÀÔ·Â

computer : 2

program : 3, 5, 2

 

Ãâ·Â

computer1 : 5

computer2 : 3, 2

 

ÀÌÁ¦ ÇÔ¼öÀÇ ³»ºÎ¸¦ »ìÆìº¾½Ã´Ù.

¸ÕÀú ¡°¹Ù±¸´Ï¸¦ ÁغñÇÑ´Ù.¡±

 

    outlist = []

    sumout = []

    for x in range(coms):

        outlist.append([])

        sumout.append(0)

 

outlist°¡ ¹Ù·Î ¹Ù±¸´Ï(ÄÄÇ»ÅÍ)µéÀÇ ¸ñ·ÏÀ̱¸¿ä, sumoutÀº ¹Ù±¸´Ï ÇÑ °³¸¶´Ù ´ã°ÜÁø »§(¼öÇàÇÒ ÇÁ·Î±×·¥)ÀÇ Çհ踦 °®´Â ¸ñ·ÏÀÔ´Ï´Ù.

coms´Â ÇÔ¼öÀÇ ÀÎÀÚ·Î ¹ÞÀº ÄÄÇ»ÅÍ ´ë¼ö(¹Ù±¸´ÏÀÇ °³¼ö)¿´ÁÒ?

coms °ªÀÌ 3À̶ó¸é À§ÀÇ for ¹®À» ¼öÇàÇÑ ÈÄ¿¡ outlist´Â [[], [], []]¿Í °°ÀÌ µÇ°í, sumoutÀº [0, 0, 0]ÀÌ µË´Ï´Ù.

³ªÁß¿¡ ÇÔ¼ö°¡ ¸ðµÎ ½ÇÇàµÇ°í ³ª¸é outlist¿¡´Â °á°ú°ªÀÌ [[22], [15, 3, 2], [13, 6]]¿Í °°ÀÌ ´ã±â°í, ±× ¶§ sumoutÀº [22, 20, 19]°ú °°ÀÌ µÇ¾îÀÖµµ·Ï ÇÒ »ý°¢ÀÌÁö¿ä.

 

´ÙÀ½, ¡°¹Ù±¸´Ï¿¡ ´ãÀ» »§µéÀ» Å©±â¼øÀ¸·Î Á¤·ÄÇÑ´Ù.¡±

 

    inlist.sort()

    inlist.reverse()

 

ÇÔ¼öÀÇ ÀÎÀÚ·Î ¹ÞÀº inlist¸¦ sort()·Î Á¤·ÄÇÑ ´ÙÀ½, reverse()·Î ¼ø¼­¸¦ µÚÁý½À´Ï´Ù.

¸®½ºÆ®¿¡ sort()¸¦ Àû¿ëÇÏ¸é ¸®½ºÆ®ÀÇ ¿ø¼ÒµéÀÌ ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄµÇ±¸¿ä, ´Ù½Ã reverse()¸¦ Àû¿ëÇÏ¸é ³»¸²Â÷¼øÀ¸·Î Á¤·ÄµÇ´Â °ÍÀÔ´Ï´Ù.

ÀÌÁ¦ °¢°¢ÀÇ »§À» ¹Ù±¸´Ï·Î ºÐ¹èÇϰڽÀ´Ï´Ù.

 

    for bread in inlist:

        lowbasket = sumout.index(min(sumout))

        outlist[lowbasket].append(bread)

        sumout[lowbasket] += bread

 

°¡Àå °¡º­¿î ¹Ù±¸´Ï¸¦ ±¸Çϱâ À§ÇØ min(sumout)À» Çß±¸¿ä, ±× ¹Ù±¸´ÏÀÇ À妽º¸¦ ±¸Çؼ­ lowbasketÀ̶ó°í ÇÏ¿´½À´Ï´Ù.

°¢°¢ÀÇ ¹Ù±¸´Ï´Â outlist¿Í sumout¿¡¼­ °°Àº À妽º¸¦ ¾´´Ù´Â Á¡À» ÀÌ¿ëÇϱâ À§Çؼ­ÀÌÁö¿ä.

¿¹¸¦ µé¾î¼­, ¸¸¾à outlist Àüü°¡ [[22], [15], [13, 6]]ÀÎ »óŶó¸é sumoutÀº [22, 15, 19]°¡ µÇ¾îÀÖÀ» Å×±¸¿ä, ÇöÀç °¡Àå °¡º­¿î ¹Ù±¸´Ï´Â 15°¡ µé¾îÀÖ´Â ¹Ù±¸´ÏÀÔ´Ï´Ù.

 

>>> outlist = [[22], [15], [13, 6]]

>>> sumout = [22, 15, 19]

>>> min(sumout)

15

 

À̰ÍÀÇ À妽º¸¦ ¾Ë¾Æº¸¸é 1À̶ó´Â °É ¾Ë ¼ö ÀÖÁö¿ä.

 

>>> sumout.index(15)

1

 

ÀÌÁ¦ ±¸ÇØÁø À妽º¸¦ lowbasketÀ̶ó°í Çϰí, outlist¿Í sumout¿¡¼­ À妽º 1ÀÎ ¹Ù±¸´Ï´Â ´ÙÀ½°ú °°½À´Ï´Ù.

 

>>> outlist[1]

[15]

>>> sumout[1]

15

 

ÀÌ·± ¹æ¹ýÀ¸·Î µÎ ¸®½ºÆ®¿¡¼­ °°Àº ¹Ù±¸´Ï¸¦ °¡¸®Å°´Â ºÎºÐÀ» ã¾Æ¼­ ¹Ù±¸´Ï¿¡ »§À» ´ãÀ» ¶§, ±× ¹Ù±¸´Ï°¡ ¾ó¸¶³ª á´ÂÁöµµ ÇÔ²² Ã¼Å©ÇØµÎ´Â °Ì´Ï´Ù.

inlistÀÇ ¸ðµç ¿ø¼Ò¿¡ ´ëÇØ ÀÌ ÀÏÀ» ¹Ýº¹ÇßÀ¸¸é, Áï ¸ðµç »§À» ¹Ù±¸´Ï¿¡ ³ª´²´ã¾ÒÀ¸¸é, ±¸ÇØÁø outlist¸¦ ÇÔ¼öÀÇ °á°ú°ªÀ¸·Î µ¹·ÁÁÝ´Ï´Ù.

 

    return outlist

 

³¡ÀÌ¿¡¿ä~.

ÀÌÁ¦ ÇÁ·Î±×·¥À» ÇÑ ¹ø µ¹·Áº¸¼¼¿ä. ¾ÆÁÖ Àß~ µÉ°Å¿¹¿ä~