ÀÌ Ã¥Àº ÇѸ¶µð·Î »ï¼º ÀԻ縦 À§ÇÑ Çʵ¶¼ÀÌ´Ù. ¶ÇÇÑ, C++ÀÇ ÀÔÃâ·ÂÇÔ¼ö·Î cin/cout ´ë½Å scanf/printf¸¦ »ç¿ëÇÑ´Ù. ÀÔ·ÂÀ̳ª Ãâ·ÂÇØ¾ß ÇÏ´Â µ¥ÀÌÅÍ°¡ ¸¹¾ÆÁú¼ö·Ï ÀÔ/Ãâ·Â ¼Óµµ¿¡¼ Â÷À̸¦ º¸À̱⠶§¹®ÀÌ´Ù. JAVA¿¡¼µµ ÀÔ·Â ¼Óµµ °³¼±À» À§ÇØ Bufferedreader/BufferedWriter¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª ÀÔ·Â °ªÀ» Á÷Á¢ ÆĽÌÇØ¾ß ÇÑ´Ù´Â ¹ø°Å·Î¿ò°ú °¢ ÁÙÀÇ ÀÔ/Ãâ·Â µ¥ÀÌÅÍ°¡ ¸¹À» ¶§¸¸ Á¦ÇÑÀûÀ¸·Î ¼º´ÉÀÇ Â÷À̸¦ º¸À̱⠶§¹®¿¡ µû·Î ¾ð±ÞÇÏÁö´Â ¾Ê´Â´Ù. »ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ®(SAQ)´Â ¾Ë°í¸®Áò À̷лӸ¸ ¾Æ´Ï¶ó ½ÇÁ¦ ÇÁ·Î±×·¥ °³¹ß´É·ÂÀ» Æò°¡ÇÏ´Â ½Ç±â½ÃÇèÀÌ´Ù. 2018³â »ó¹Ý±â ±âÁØ, ½ÃÇè¿¡¼ Á¦°øÇÏ´Â C, C++, JAVA ¼¼ °¡Áö Áß ÇϳªÀÇ ¾ð¾î·Î ½ÇÁ¦ ÇÁ·Î±×·¥À» ÄÚµùÇÏ¿© ±× °á°ú¸¦ äÁ¡ÇÏ´Â ½ÃÇèÀÌ´Ù. ½ÃÇèÀå¿¡ ÀÔÀåÇÏ¸é °£´ÜÇÏ°Ô ½ÃÇè ½Ã ÁÖÀÇÇØ¾ß ÇÒ »çÇ׿¡ ´ëÇØ ¼³¸íÀ» µè°Ô µÇ°í, ±× ÈÄ °¨µ¶°üÀÌ ¾Ë·ÁÁØ À¥ÆäÀÌÁö¿¡¼ ½ÃÇè ½ÃÀÛ ½Ã°£ Á¤°¢¿¡ ¸ðµç ¼öÇè»ýµé¿¡°Ô µ¿½Ã¿¡ ¹®Á¦°¡ °ø°³µÈ´Ù. ½ÃÇè½Ã°£Àº À¥ÆäÀÌÁö¿¡ ÀÖ´Â ½Ã°£ ±âÁØÀ̸ç, ½ÃÇèÀÌ ½ÃÀÛµÇ¸é ¼öÇè»ýÀº ÇØ´ç ¹®Á¦¸¦ ÀÐ°í ¹®Á¦ ÇÏ´Ü¿¡ ´ä¾ÈÀ» ÀÛ¼ºÇÏ¿© Á¦ÃâÇÏ¿©¾ß ÇÑ´Ù. ½ÃÇèÀå¿¡´Â 2ÀåÀÇ ¿¬½ÀÀåÀÌ Á¦°øµÇ¸ç, Ãß°¡ ¿¬½ÀÀåÀº Áö±ÞÀÌ µÇÁö ¾Ê´Â´Ù. ´Ù¸¸, »õ·Î¿î ¿¬½ÀÀåÀÌ ÇÊ¿äÇÑ °æ¿ì ±âÁ¸¿¡ ¹ÞÀº ¿¬½ÀÀå°ú ±³È¯ÇÒ ¼ö ÀÖ´Ù. ¹Ù·Î ÄÚµùÀ» ½ÃÀÛÇϱ⺸´Ù´Â ¿¬½ÀÀåÀ» È°¿ëÇÏ¿© ÄÚµùÇÒ ³»¿ëµéÀ» ¹Ì¸® Á¤¸®ÇÏ°í °ËÅäÇÏ´Â ½À°üÀ» µéÀÌ´Â °ÍÀÌ ÁÁ´Ù.
¶ÇÇÑ, ½ÃÇèÀå¿¡´Â »ç¿ëÀÚ°¡ ÄÚµùÇϱ⠽±µµ·Ï ¸¸µç ÆíÁý±â, IDE(Integrated Development Environment, ÅëÇÕ °³¹ß ȯ°æ)°¡ ÁغñµÇ¾îÀÖ´Ù. ¾ð¾îº°·Î´Â C, C++À» À§ÇÑ IDE·Î Visual Studio¸¦, JAVA¸¦ À§ÇÑ IDE·Î Eclipse¸¦ Á¦°øÇÏ°í ÀÖ´Ù. ÁÖÀÇÇÒ ºÎºÐÀº ¼öÇè»ýÀÇ ÄÄÇ»ÅÍ¿¡ ÀÖ´Â IDE¿¡ ÀÛ¼ºµÈ ÄÚµå·Î äÁ¡ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¹®Á¦°¡ ÁÖ¾îÁø À¥ÆäÀÌÁö ÇÏ´ÜÀÇ ÄÚµå ÀÛ¼º¶õ¿¡ ÀÖ´Â ÄÚµå·Î Æò°¡¸¦ ÇÑ´Ù´Â Á¡ÀÌ´Ù. ¶ÇÇÑ ½ÃÇèÀå¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥Àº ¸Þ¸ðÀå, °è»ê±â, IDE»ÓÀÌ¸ç ¿¢¼¿(excel)°°Àº ÇÁ·Î±×·¥À» »ç¿ëÇÏ¸é ºÎÁ¤ÇàÀ§·Î °£ÁÖµÇ´Ï ÀÌ Á¡¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. |
1. »ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ®¿¡ ´ëÇÑ ÀÌÇØ
»ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ®(SAQ)´Â ¾Ë°í¸®Áò ÀÌ·Ð »Ó¸¸ ¾Æ´Ï¶ó ½ÇÁ¦ ÇÁ·Î±×·¥ °³¹ß´É·ÂÀ» Æò°¡ÇÏ´Â ½Ç±â½ÃÇèÀÌ´Ù. µû¶ó¼ 2018³â »ó¹Ý±â ±âÁØ, ½ÃÇè¿¡¼ Á¦°øÇÏ´Â C, C++, JAVA ¼¼°¡Áö Áß ÇϳªÀÇ ¾ð¾î·Î ½ÇÁ¦ ÇÁ·Î±×·¥À» ÄÚµùÇÏ¿© ±× °á°ú¸¦ äÁ¡ÇÏ´Â ½ÃÇèÀÌ´Ù.
½ÃÇèÀå¿¡ ÀÔÀåÇÏ¸é °£´ÜÇÏ°Ô ½ÃÇè½Ã ÁÖÀÇÇØ¾ß ÇÒ »çÇ׿¡ ´ëÇØ ¼³¸íÀ» µè°Ô µÇ°í, ±× ÈÄ °¨µ¶°üÀÌ ¾Ë·ÁÁØ À¥ÆäÀÌÁö¿¡¼ ½ÃÇè ½ÃÀ۽ð£ Á¤°¢¿¡ ¸ðµç ¼öÇè»ýµé¿¡°Ô µ¿½Ã¿¡ ¹®Á¦°¡ ¿ÀǵȴÙ. ½ÃÇè½Ã°£Àº À¥ÆäÀÌÁö¿¡ ÀÖ´Â ½Ã°£ ±âÁØÀ̸ç, ½ÃÇèÀÌ ½ÃÀÛµÇ¸é ¼öÇè»ýÀº ÇØ´ç ¹®Á¦¸¦ ÀÐ°í ¹®Á¦ ÇÏ´Ü¿¡ ´ä¾ÈÀ» ÀÛ¼ºÇÏ¿© Á¦ÃâÇÏ¿©¾ß ÇÑ´Ù.
½ÃÇèÀå¿¡´Â 2ÀåÀÇ ¿¬½ÀÀåÀÌ Á¦°øµÇ¸ç, Ãß°¡ ¿¬½ÀÀåÀº Áö±ÞÀÌ µÇÁö ¾Ê´Â´Ù. ´Ù¸¸, »õ·Î¿î ¿¬½ÀÀåÀÌ ÇÊ¿äÇÑ °æ¿ì ±âÁ¸¿¡ ¹ÞÀº ¿¬½ÀÀå°ú ±³È¯ÇÒ ¼ö ÀÖ´Ù. ¼µÎ¿¡ ¸»ÇÑ °Íó·³ ¿¬½ÀÀåÀ» È°¿ëÇÏ¿© ÄÚµùÇÒ ³»¿ëµéÀ» ¹Ì¸® Á¤¸®ÇÏ°í °ËÅäÇÏ´Â ½À°üÀ» µéÀÌ´Â °ÍÀÌ ÁÁ´Ù.
¶ÇÇÑ ½ÃÇèÀå¿¡´Â »ç¿ëÀÚ°¡ ÄÚµùÀ» Çϱ⠽±µµ·Ï ¸¸µç ÆíÁý±â, IDE(Integrated Development Environment, ÅëÇÕ °³¹ß ȯ°æ)¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô Áغñ µÇ¾îÀÖ´Ù. ¾ð¾îº°·Î´Â C, C++À» À§ÇÑ IDE·Î Visual Studio¸¦, JAVA¸¦ À§ÇÑ IDE·Î Eclipse¸¦ Á¦°øÇÏ°í ÀÖ´Ù. ÁÖÀÇÇÒ Á¡Àº ¼öÇè»ýÀÇ ÄÄÇ»ÅÍ¿¡ ÀÖ´Â IDE¿¡ ÀÖ´Â ÄÚµå·Î äÁ¡ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¹®Á¦°¡ ÁÖ¾îÁø À¥ÆäÀÌÁö ÇÏ´ÜÀÇ ÄÚµå ÀÛ¼º¶õ¿¡ Äڵ带 Á¦ÃâÇÏ¿©¾ß Á¦´ë·Î µÈ Æò°¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù. ¶ÇÇÑ ½ÃÇèÀå¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥Àº ¸Þ¸ðÀå, °è»ê±â, IDE»ÓÀÌ¸ç ¿¢¼¿(excel)°°Àº ÇÁ·Î±×·¥À» »ç¿ëÇÏ¸é ºÎÁ¤ÇàÀ§·Î °£ÁÖµÇ´Ï ÀÌ Á¡¿¡ À¯ÀÇÇÏÀÚ.
½ÃÇèÀº ÃÑ 3½Ã°£µ¿¾È 2¹®Á¦¸¦ Ç®°Ô µÈ´Ù. ³À̵µ´Â ÀϹÝÀûÀ¸·Î 1¹ø¹®Á¦°¡ Á» ´õ ½±´Ù°í ¾Ë·ÁÁ® ÀÖÀ¸³ª, ¹®Á¦ À¯ÇüÀ̳ª °³Àκ° ü°¨µµ¿¡ µû¶ó ³À̵µ´Â ´Ù¸£°Ô ´À³¥ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ¹®Á¦ ÇÏ´Ü¿¡ sample case°¡ ÁÖ¾îÁö´Âµ¥ sample case¸¦ °¡Áö°í ³»°¡ ÀÛ¼ºÇÑ Äڵ尡 ¿Ã¹Ù¸¥ °á°ú¸¦ Ãâ·ÂÇÏ´ÂÁö¸¦ È®ÀÎÇØ º¼ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ sample case¿¡ ´ëÇØ ¸ðµÎ Á¤´äÀ» Ãâ·ÂÇß´Ù°í Çؼ ±× ¹®Á¦¸¦ ¿Ïº®È÷ Ç®¾ú´Ù°í ¸»ÇÒ ¼ö ¾ø´Âµ¥, ½ÇÁ¦ äÁ¡Àº sample case°¡ ¾Æ´Ñ ¼û°ÜÁø äÁ¡¿ë evaluate case¸¦ °¡Áö°í äÁ¡À» Çϱ⠶§¹®ÀÌ´Ù. äÁ¡¿ë evaluate case¿¡´Â sample case¿¡´Â ¾øÁö¸¸ ¼öÇè»ýµéÀÌ ½Ç¼ö·Î ³õÄ¡±â ½¬¿î ¿¹¿Ü ÄÉÀ̽º(corner case)µéµµ ¸¹ÀÌ Á¸ÀçÇÑ´Ù. µû¶ó¼ sample case¸¦ Åë°úÇؾßÇÏ´Â °ÍÀº ¹°·Ð, ½Ã°£ÀÌ µÈ´Ù¸é sample case¿Ü¿¡ Á¸ÀçÇÒ ¼ö ÀÖ´Â ¿¹¿Ü ÄÉÀ̽º¸¦ Á÷Á¢ ¸¸µé¾î ¿Ã¹Ù¸¥ Á¤´äÀ» Á¦Çѽ𣠳»¿¡ Ãâ·ÂÇÏ´ÂÁö¸¦ »ìÆ캸´Â °ÍÀÌ Áß¿äÇÏ´Ù.
´ä¾È ÀÛ¼º¶õÀº C/C++/JAVA ¾ð¾îº°·Î ÀÛ¼ºÇÒ ¼ö ÀÖ´Â °ø°£ÀÌ ÁÖ¾îÁö°í, °£´ÜÇÑ ±âº» ÅÛÇø´ÀÌ ÁÖ¾îÁø´Ù. ÀÌ ÅÛÇø´À» IDE¿¡ º¹»çÇؼ ÄÚµùÀ» ½ÃÀÛÇÏ´Â °ÍÀÌ Æí¸®ÇÏ´Ù. ´Ù¸¸, ¾Õ¿¡¼ ¸»ÇÑ °Íó·³ ÄÄÇ»ÅÍ¿¡ ¼³Ä¡µÈ IDE¿¡¼ ÄÚµùÀ» ÇÏ´Â °ÍÀº »ó°ü¾øÀ¸³ª, ÃÖÁ¾ Á¦ÃâÀº ¹Ýµå½Ã À¥ ÆäÀÌÁö¿¡¼ ÇØ¾ß Ã¤Á¡ÀÌ µÈ´Ù´Â Á¡À» ¹Ýµå½Ã ¸í½ÉÇÏÀÚ.
¸¸¾à ¾Ë°í¸®Áò ½Ç±â½ÃÇèÀÌ Ã³À½À̶ó¸é ¿Â¶óÀÎ ÀúÁö »çÀÌÆ®¿¡¼ Á¦°øÇÏ´Â ¿¬½À¹®Á¦³ª ¿Â¶óÀÎ ¾Ë°í¸®Áò ´ëȸ¿¡ Âü°¡ÇÏ¿© ¹®Á¦°¡ ¾î¶² ¹æ½ÄÀ¸·Î ÃâÁ¦µÇ´ÂÁö ¸ÕÀú °æÇèÇغ¸±æ ÃßõÇÑ´Ù.
ÇØ¿Ü ÀúÁö »çÀÌÆ®·Î´Â Topcoder(https://www.topcoder.com), Codeforces (http://www.codeforces.com)µîÀÌ ÀÖÀ¸¸ç ±¹³» ÀúÁö »çÀÌÆ®·Î´Â »ï¼ºÀÇ SW Expert Academy(https://www.swexpertacademy.com), ÄÚµå±×¶ó¿îµå(https://www.codeground.org), Á¤¿Ã(http://www.jungol.co.kr), BOJ(http://www.acmicpc.net)µîÀÌ ÀÖ´Ù.
¿Â¶óÀÎ ¾Ë°í¸®Áò ´ëȸ·Î´Â ±¸±ÛÀÇ ÄÚµåÀë(https://code.google.com/codejam)°ú ¾Õ¼ ¾ð±ÞÇÑ Topcoder, Codeforcesµî ¿©·¯ »çÀÌÆ®¿¡¼ Á¤±âÀûÀ¸·Î ´ëȸ¸¦ °³ÃÖÇÏ°í ÀÖ´Ù. ´ëȸÀÇ ³À̵µ´Â õÂ÷¸¸º°ÀÌÁö¸¸ ¿¬½À¹®Á¦¿Í ´Ù¸£°Ô ÁÖ¾îÁø ½Ã°£ ³»¿¡ ´©°¡ ¸¹Àº ¹®Á¦¸¦ Ǫ´Â°¡¸¦ °æÀïÇÏ´Â °ÍÀ̱⠶§¹®¿¡, ½ÇÁ¦ ½ÃÇè°ú °°Àº ±äÀå°¨À» ´À³¢¸ç ¹®Á¦¸¦ Ç®¾îº¼ ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ´ëȸ°¡ ³¡³ª¸é ÃâÁ¦ÀÚ°¡ ¸ð¹üÄÚµå¿Í ±×¿¡ ´ÙÇÑ Çؼ³À» Á¦°øÇÏ°í, Åä·ÐÀå¿¡¼ ¼¼°è °¢±¹ÀÇ Âü°¡ÀÚµéÀÌ ÇØ´ç ¹®Á¦¿¡ ´ëÇÑ ¿¶í Åä·ÐÀ» ÆîÄ£´Ù. Åä·Ð°úÁ¤¿¡¼ ³»°¡ »ý°¢ÇÏÁö ¸øÇÑ ´Ù¾çÇÑ ¾ÆÀ̵ð¾î¸¦ ¾òÀ» ¼ö ÀÖ°í, À̸¦ ÅëÇØ ¾Ë°í¸®Áò ¹®Á¦Ç®ÀÌ ½Ç·ÂÀÌ Å©°Ô »ó½ÂÇÏ´Â °è±â°¡ µÉ ¼ö ÀÖ´Ù.
Summary
»ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ® ½ÃÇè½Ã Á¦°øµÇ´Â Sample Case¸¦ °¡Áö°í Á¤´äÀ» Ãâ·ÂÇÏ´Â °ÍÀ» 1Â÷ ¸ñÇ¥·Î ÇϵÇ, ½ÇÁ¦ äÁ¡Àº äÁ¡¿ë Evaluation Case·Î ÀÌ·ïÁö¹Ç·Î ¿©·¯ ¿¹¿Ü ÄÉÀ̽º¿¡ ´ëÇؼµµ Á¤´äÀ» Ãâ·ÂÇÏ´ÂÁö È®ÀÎÇØ¾ß ÇÑ´Ù.
½ÃÇè Àü ±¹³»/ÇØ¿Ü ¿Â¶óÀÎ ÀúÁö »çÀÌÆ®¿¡¼ ¹®Á¦¸¦ Ç®¾îº¸±æ ±ÇÀåÇÑ´Ù. ´Ù¸¸, »ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ®ÀÇ ³À̵µ¸¦ ¹þ¾î³ª´Â ¹®Á¦µéÀÌ ¸¹±â ¶§¹®¿¡ ¸ÕÀú »ï¼º¿¡¼ Á¦°øÇÏ´Â SW Expert Academy (https://www.swexpertacademy.com)¿¡¼ ¿¬½ÀÇϱ⸦ ÃßõÇÑ´Ù.
Summary
¹®Á¦¸¦ ²Ä²ÄÈ÷ Àд °Íµµ Áß¿äÇÑ ºÎºÐÀÌ´Ù. ¼öÇè»ýµé Áß ¹®Á¦¸¦ ±ÞÇÏ°Ô Àд ¹Ù¶÷¿¡ ¹®Á¦¸¦ Àß ¸ø ÀÌÇØÇÏ¿© ¾û¶×ÇÑ ¹æÇâÀ¸·Î Á¢±ÙÇÏ¿© ½ÃÇèÀ» ¸ÁÄ¡´Â »ç·Ê°¡ ¸¹À¸´Ï ÁÖÀÇÇÏÀÚ.
¾Ë°í¸®Áò ¹®Á¦¸¦ ÇØ°áÇÒ ¶§, ¿¬½ÀÀå¿¡ ÀڽŸ¸ÀÇ °èȹÀ» ±×·Áº¸´Â ÈÆ·ÃÀ» ²À ÇØ¾ß ÇÑ´Ù. ½ÃÇè½Ã°£ÀÇ ¸¹Àº ºÎºÐÀ» ¾Ë°í¸®ÁòÀ» ¼³°èÇϴµ¥ ÅõÀÚÇÏ´õ¶óµµ ¿Ã¹Ù¸¥ ¹æÇâÀ¸·ÎÀÇ ¾Ë°í¸®ÁòÀ» ¼³°èÇÒ ¼ö ÀÖ´Ù¸é ÈνŠȿÀ²ÀûÀ¸·Î ¹®Á¦¸¦ Ç® ¼ö ÀÖ´Ù.
Á¦ÇÑÁ¶°ÇÀ» ³õÄ¡Áö ¸»¾Æ¾ß ÇÑ´Ù. ¸·¸·ÇØ º¸ÀÌ´Â ¹®Á¦¿©µµ Á¦ÇÑÁ¶°Ç¿¡ ÈùÆ®°¡ ÀÖ´Â °æ¿ìµµ ÀÖ°í, ¹Ý´ë·Î ½¬¿ö º¸ÀÌÁö¸¸ Á¦ÇÑÁ¶°Ç¿¡ ÇÔÁ¤ÀÌ ÀÖ´Â °æ¿ìµµ ´õ·¯ Á¸ÀçÇÑ´Ù. ƯÈ÷ Á¦ÇÑÁ¶°ÇÀ» ¹«½ÃÇÏ´õ¶óµµ sample case¿¡¼´Â Á¤´äÀÌ Ãâ·ÂµÇÁö¸¸ ½ÇÁ¦ äÁ¡¿ë ÄÉÀ̽ºÀÎ evaluation case¿¡¼´Â ¿À´äÀ» Ãâ·ÂÇÏ´Â °æ¿ì°¡ ÀÖÀ¸¹Ç·Î °¢º°È÷ ½Å°æ½á¾ß ÇÑ´Ù.
º»ÀÎÀÌ »ý°¢ÇÑ ³»¿ëÀ» ÄÄÇ»ÅÍ ¾ð¾î·Î ±¸ÇöÇÑ´Ù´Â °ÍÀº ½±Áö ¾ÊÀº ÀÏÀÌ´Ù. ƯÈ÷ óÀ½ ÄÚµùÀ» Á¢ÇÏ´Â ¼öÇè»ýµé¿¡°Ô´Â ¿À·ÎÁö ¿¬½À¸¸ÀÌ ±¸Çö´É·ÂÀ» Å°¿ì´Â ¹æ¹ýÀÌ´Ù. ¸Å¹ø ¹Ýº¹µÇ´Â ¿À·ù¿¡ ÁöÄ¥ ¼öµµ ÀÖÁö¸¸, ¿À·ù¸¦ µð¹ö±ëÇÏ´Â ¿¬½ÀÁ¶Â÷ ½ÇÁ¦ ½ÃÇè¿¡¼ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
3. IDE(Visual Studio / Eclipse) ¼³Ä¡ ¹× »ç¿ë¹æ¹ý
¸ÕÀú ½ÃÇèÀå¿¡¼ »ç¿ëÇÏ°Ô µÉ IDEÀÎ Visual Studio¿Í Eclipse¸¦ ¹Ì¸® ¼³Ä¡ÇÏ°í, »ç¿ë¹ý¿¡ Àͼ÷ÇØ Á®¾ß ÇÑ´Ù. ¸ðµÎ ¼³Ä¡ÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç ÀÚ½ÅÀÌ ¼±ÅÃÇÒ ¾ð¾î°¡ C/C++ÀÎ °æ¿ì´Â Visual Studio¸¦, JAVAÀÎ °æ¿ì Eclipse¸¦ ¼³Ä¡ÇÏ¸é µÈ´Ù.
1. Visual Studio
Visual Studio ´Ù¿î·Îµå ÆäÀÌÁö(https://www.visualstudio.com/ko/downloads)¿¡ Á¢¼ÓÇÏ¸é ¾Æ·¡ ±×¸² 1°ú °°Àº ȸéÀ» º¼ ¼ö ÀÖ´Ù.
´Ù¿î·Îµå ÆäÀÌÁö¿¡¼ ±×¸²1¿¡¼ º¸ÀÌ´Â »¡°£ ¹Ú½ºÀÇ Visual Studio Community 2017 ¡°¹«·á ´Ù¿î·Îµå¡± ¹öÆ°À» Ŭ¸¯Çϸé ÀÚµ¿À¸·Î Visual Studio Installer¸¦ ´Ù¿î·Îµå ¹Þ°ÔµÈ´Ù.
ÇØ´ç ÆÄÀÏÀ» ½ÇÇà½ÃÄÑ Visual Studio¸¦ ¼³Ä¡ÇÒ ¶§ ´ÙÀ½ ±×¸² 2¿Í °°ÀÌ ¡°C++À» »ç¿ëÇÑ µ¥½ºÅ©Åé °³¹ß¡± Ç׸ñÀ» üũÇÏ¿© ¼³Ä¡¸¦ ÁøÇàÇϵµ·Ï ÇÑ´Ù.
2. ¾Ë°í¸®Áò ¹®Á¦ ÇØ°á °úÁ¤
¾Ë°í¸®ÁòÀ̶õ ÀϹÝÀûÀ¸·Î ƯÁ¤ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ¿©·¯ µ¿ÀÛµéÀÇ ´Ü°è³ª ¹æ¹ýÀÇ ¸ðÀÓÀÌ´Ù. ¿ì¸®°¡ ÀÌ ±³À縦 ÅëÇØ ´Ù·ç°íÀÚ ÇÏ´Â ÄÄÇ»ÅÍ °úÇп¡¼ÀÇ ¾Ë°í¸®ÁòÀ̶õ ¼öÇÐÀûÀÎ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ´Ü°èµéÀ» ¿Ï¼ºÇÏ´Â °úÁ¤À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ¾î¶°ÇÑ ¹®Á¦¸¦ ÇØ°áÇÏ´Â µ¥¿¡ ÀÖ¾î ¿©·¯ ¹æ¹ýÀÌ Á¸ÀçÇϵíÀÌ ÄÄÇ»ÅÍ °úÇп¡¼ ¾Ë°í¸®ÁòÀº ¿øÇÏ´Â °á°ú¸¦ µµÃâÇØ ³»´Â °ÍÀº ¹°·Ð, ÃÖÀû(õÌîê)ÀÇ ¹æ¹ýÀ» ã´Â µ¥¿¡ ±× ¸ñÀûÀÌ ÀÖ´Ù. ¿©±â¼ ¸»ÇÏ´Â ÃÖÀûÀÇ ¹æ¹ýÀ̶õ ´ÙÀ½¿¡ ¹è¿ï ½Ã°£º¹Àâµµ¿Í °ø°£º¹ÀâµµÀÇ °³³äÀ¸·Î 󸮽ð£°ú ¸Þ¸ð¸®»ç¿ë Ãø¸é¿¡¼ È¿À²ÀûÀÓÀ» ¶æÇÑ´Ù. »ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ®¿¡¼´Â ¹®Á¦¸¦ Ǫ´Âµ¥ ÇÊ¿äÇÑ ½ÃÇè½Ã°£ »Ó¸¸ ¾Æ´Ï¶ó ¾Ë°í¸®ÁòÀÌ ¼öÇàÇϴµ¥ °É¸®´Â ½Ã°£°ú »ç¿ëÇÏ´Â ¸Þ¸ð¸®ÀÇ Á¦ÇѹüÀ§°¡ ÁÖ¾îÁø´Ù.
µû¶ó¼ ¾Æ·¡¿Í °°ÀÌ 4´Ü°è·Î ±¸ºÐÇÏ¿© ¹®Á¦¸¦ Ǫ´Â °ÍÀ» ÃßõÇÑ´Ù.
1. ¹®Á¦¸¦ ÀÐ°í ¿Ïº®ÇÏ°Ô ÀÌÇØÇÑ´Ù.
¹®Á¦¸¦ ÀÐ°í ¿Ïº®ÇÏ°Ô ÀÌÇØÇÑ´Ù´Â ¸»Àº ´Ü¼øÈ÷ ÁÖ¾îÁø ¹®Á¦¸¦ ÀÌÇØÇÏ´Â °Í »Ó¸¸ ¾Æ´Ï¶ó Á¦½ÃµÈ Á¦ÇÑÁ¶°ÇÀ» ÀÌÇØÇÏ´Â °Í ¿ª½Ã Æ÷ÇԵȴÙ.
¹®Á¦ÀÇ ³»¿ëÀÌ ¾Æ·¡¿Í °°Àº °æ¿ì¸¦ »ìÆ캸ÀÚ.
¹®Á¦¿¡¼ »ý»êµÈ Á¦Ç°ÀÇ °³¼ö¸¦ Ãâ·ÂÇ϶ó°í Ç߱⠶§¹®¿¡ °á°ú°ªÀº 0ÀÌ»óÀÇ Á¤¼ö¸¦ Ãâ·ÂÇØ¾ß ÇÔÀ» ¾Ë ¼ö ÀÖ´Ù. ¾Ë´Ù½ÃÇÇ C++À̳ª Java¿¡´Â Á¤¼ö¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Â ÀÚ·áÇüÀÌ Å©°Ô µÎ °¡Áö°¡ Á¸ÀçÇÑ´Ù.
Çϳª´Â 32ºñÆ® ÀÚ·áÇüÀÎ int·Î int°¡ ³ªÅ¸³¾ ¼ö ÀÖ´Â ¼ýÀÚÀÇ ¹üÀ§´Â -ºÎÅÍ ±îÁö(-2,147,483,648 ~ 2,147,483,647)ÀÌ°í, ´Ù¸¥ Çϳª´Â 64ºñÆ® ÀÚ·áÇüÀÎ longÀ¸·Î(C++¿¡¼´Â long long) ³ªÅ¸³¾ ¼ö ÀÖ´Â ¼ýÀÚÀÇ ¹üÀ§´Â -ºÎÅÍ ±îÁö(-9,223,374,036,854,775,808 ~ 9,223,372,036,854,775,807)ÀÌ´Ù.
¹®Á¦¿¡¼ Ãâ·Â°ªÀÌ ÀÌ ³Ñ´Â °æ¿ì Ãâ·ÂÇÏ´Â ÀÚ·áÇüÀ» 32ºñÆ® ÀÚ·áÇüÀÎ int·Î Çß´Ù¸é ¿ì¸®°¡ ¿øÇÏ´Â Á¤»óÀûÀÎ °á°ú¸¦ ¾òÁö ¸øÇÏ°Ô µÈ´Ù.
¾Æ·¡ Äڵ带 Ãâ·ÂÇØ º¸¸é È®ÀÎÇØ º¼ ¼ö ÀÖ´Ù.
C++
JAVA
ÀÌó·³ ¹®Á¦¿¡¼ Á¦ÇÑ»çÇ×À¸·Î ÁÖ¾îÁø ³»¿ëÀ» ²Ä²ÄÈ÷ Àоî¾ß À§¿Í °°Àº ½Ç¼ö¸¦ ¹æÁöÇÒ ¼ö ÀÖ´Ù.
2. ¹®Á¦¸¦ ¾î¶»°Ô ÇØ°áÇÒÁö °èȹÀ» ¼¼¿î´Ù.
¸¹Àº ÇлýµéÀÌ ½ÃÇè½Ã°£¿¡ ÂÑ±ä ³ª¸ÓÁö ¹®Á¦¸¦ ÀÐ°í ¹Ù·Î ÄÚµùÀ» ½ÃÀÛÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÁÖ¾îÁø ¹®Á¦ÀÇ Á¦ÇÑÁ¶°ÇÀ» ¹þ¾î³ªÁö ¾Ê´Â ÀûÀýÇÑ ÇØ°á¹æ¹ýÀ̶ó¸é ¹®Á¦°¡ ¾øÀ¸³ª, ±×·¸Áö ¾Ê°í ÄÚµùÀ» ½ÃÀÛÇÏ°í ÇÑÂüµÚ¿¡ ¿À·ù¸¦ ¹ß°ßÇÑ´Ù¸é ½ÃÇèÀ» ¸ÁÄ¡°Ô µÈ´Ù.
¹®Á¦ÀÇ ³»¿ëÀÌ ¾Æ·¡¿Í °°Àº °æ¿ì¸¦ »ìÆ캸ÀÚ.
À¯¸íÇÑ ¾Ë°í¸®Áò ¹®Á¦Áß ÇϳªÀÎ °Å½º¸§µ· ¹®Á¦·Î, ÀÌ ¹®Á¦¸¦ óÀ½ ´Ù·ïº¸´Â ÇлýµéÀº "ÃÖ¼ÒÇÑÀÇ µ¿Àü°³¼ö"¸¦ ±¸ÇϱâÀ§ÇØ °¡Àå ¾×¸é°¡°¡ Å« µ¿ÀüºÎÅÍ ÁÖ´Â °ÍÀÌ ¹®Á¦Ç®ÀÌ ¹æ¹ýÀ̶ó°í »ý°¢Çϱ⠽±´Ù.
´Ù½Ã ¸»ÇØ, °Å½º¸§µ·ÀÌ 2000¿øÀΰæ¿ì 1000¿øÂ¥¸® 2°³·Î, °Å½º¸§µ·ÀÌ 2900¿øÀΰæ¿ì 1000¿øÂ¥¸® 2°³, 700¿øÂ¥¸® 1°³, 100¿øÂ¥¸® 2°³·Î ÁÖ´Â ¹æ¹ýÀÌ´Ù.
À§ ¹æ¹ý´ë·Î ¹®Á¦¸¦ ÇØ°áÇϸé 1400¿øÀ̳ª 2400¿ø °°Àº °æ¿ì
1400 = 1000 * 1 + 100 * 4 : ÃÑ 5°³
2400 = 1000 * 2 + 100 * 4 : ÃÑ 6°³ °¡ µÈ´Ù.
ÇÏÁö¸¸,
1400 = 700 * 2 : ÃÑ 2°³
2400 = 1000 * 1 + 700 * 2 : ÃÑ 3°³·Î, À§ÀÇ ¹æ¹ýÀÌ À߸øµÊÀ» ¾Ë ¼ö ÀÖ´Ù.
ÀÌ °æ¿ìó·³ ¿¹¿Ü ÄÉÀ̽º(corner case)¿¡ ´ëÇÑ ÃæºÐÇÑ °ËÅä ¾øÀÌ ¹®Á¦Ç®À̸¦ ½ÃÀÛÇÏ¿© ½ÃÇè ½Ã°£ÀÇ ´ëºÎºÐÀ» ³¶ºñÇß´Ù¸é ½ÃÇèÀ» Åë°úÇϱâ´Â Èûµé °ÍÀÌ´Ù. »ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ® ½ÃÇèÀå¿¡¼µµ ¿¬½ÀÀåÀ» »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡, Æò¼Ò ¿¬½ÀÀå¿¡ ÄÚµùÇÒ ³»¿ëÀ» ¹Ì¸® Àû¾îº¸°í °ËÅäÇÏ´Â ¿¬½ÀÀ» Çغ¸±æ ±ÇÀåÇÑ´Ù.
3. ÀÛ¼ºÇÏ·Á´Â ¾Ë°í¸®ÁòÀÌ ÁÖ¾îÁø Á¦ÇÑÁ¶°Ç¿¡ ºÎÇÕÇÏ´ÂÁö °ËÅäÇÑ´Ù.
¾Õ¼ ¸»ÇÑ °Íó·³ »ï¼º ¼ÒÇÁÆ®¿þ¾î ¿ª·®Å×½ºÆ®(SAQ)´Â ¾Ë°í¸®ÁòÀÌ ¼öÇàÇϴµ¥ °É¸®´Â ½Ã°£°ú »ç¿ëÇÏ´Â ¸Þ¸ð¸®ÀÇ Á¦ÇѹüÀ§°¡ ÁÖ¾îÁø´Ù. ÀÌ´Â ¹®Á¦¿¡¼ ¿øÇÏ´Â Á¤´äÀ» ±¸ÇÏ´Â °ÍÀº ¹°·Ð, ÀÏÁ¤ ¼öÁØ ÀÌ»óÀÇ ÃÖÀûÈµÈ ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÒ ¼ö ÀÖ´ÂÁö¸¦ ¹¯´Â °ÍÀÌ´Ù. µû¶ó¼ ¿ì¸®°¡ »ý°¢ÇÑ Ç®À̹æ¹ýÀÌ ¹®Á¦ÀÇ Á¤´äÀ» Ãâ·ÂÇÏ´Â ¾Ë°í¸®Áò ÀÏÁö¶óµµ ¹®Á¦¿¡¼ ÁÖ¾îÁø Á¦ÇÑÁ¶°Ç¿¡ ºÎÇÕÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ¹Ì¸® ÆÇ´ÜÇÏ¿© ºÒÇÊ¿äÇÑ ½Ã°£³¶ºñ¸¦ ÁÙ¿©¾ß ÇÑ´Ù. º¸Åë ÄÄÇ»ÅÍ´Â 1ÃÊ¿¡ 1¾ï¹øÀÇ ±âº» ¿¬»êÀ» ÇÑ´Ù°í °¡Á¤ÇÏ°í ¹®Á¦¸¦ Á¢±ÙÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ¶ÇÇÑ, ÀÚ·áÇü ¸¶´Ù ÀÏÁ¤ÇÑ ¸Þ¸ð¸®°ø°£À» Â÷ÁöÇÑ´Ù. ¸¸¾à ¹®Á¦¿¡¼ ÁÖ¾îÁø Á¦ÇÑÁ¶°ÇÀÌ ¡°¼öÇà½Ã°£:2ÃÊ / ¸Þ¸ð¸® Á¦ÇÑ:256MB¡±¶ó¸é ³»°¡ »ý°¢ÇÑ ¾Ë°í¸®ÁòÀÇ ¿¬»ê Ƚ¼ö°¡ ÃÖ´ë ÀԷ°ª¿¡ ´ëÇØ ÃÖ´ë ¿¬»êȽ¼ö°¡ 2¾ï¹øÀ» ³ÑÁö ¾Ê´ÂÁö, ³»°¡ »ç¿ëÇÏ´Â º¯¼öµéÀÌ »ç¿ë ÇÒ ¸Þ¸ð¸® °ø°£ÀÌ 256MB¸¦ ³ÑÁö ¾Ê´ÂÁö¸¦ ¹Ì¸® °è»êÇÏ¿© ½ÃÇè½Ã°£À» È¿À²ÀûÀ¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù.
4. °èȹÇÑ ³»¿ëÀ» ÄÄÇ»ÅÍ ¾ð¾î·Î ±¸ÇöÇÑ´Ù.
¾Õ¼ ¸»ÇÑ ¼¼ ´Ü°è¸¦ ÅëÇØ ¹®Á¦¿¡ ÀûÇÕÇÑ ÃÖÀûÀÇ Ç®À̹ýÀ» »ý°¢Çس´٠ÇÏ´õ¶óµµ À̸¦ ÄÄÇ»ÅÍ ¾ð¾î·Î ±¸ÇöÇÏ´Â °Í ¿ª½Ã ½±Áö¾ÊÀº ¹®Á¦ÀÌ´Ù. ½ÇÁ¦·Î ÄÄÇ»ÅÍ ¾ð¾î¸¦ ´Ù·ïº¸Áö ¾ÊÀº ¸¹Àº ÇлýµéÀÌ Á¦ÀÏ ¾î·Á¿öÇÏ°í °í¹ÎÇÏ´Â ºÎºÐÀ̱⵵ ÇÏ´Ù.
¾Æ·¡ ¿¹Á¦¸¦ »ìÆ캸ÀÚ.
ÁÂÇ¥Æò¸é¿¡ µÎ °³ÀÇ ¼±ºÐÀ» ±×¸®°í µÎ ¼±ºÐÀÌ ¸¸³ª´ÂÁö¸¦ À°¾ÈÀ¸·Î ÆÇ´ÜÇÏ´Â °ÍÀº ±²ÀåÈ÷ °£´ÜÇÑ ÀÏÀÌÁö¸¸ ½ÇÁ¦·Î À§ ¹®Á¦ÀÇ ´ä¾ÈÀ» ÄÄÇ»ÅÍ ¾ð¾î·Î ÀÛ¼ºÇغ¸¸é ½±Áö ¾ÊÀ½À» ±Ý¹æ ¾Ë ¼ö ÀÖ´Ù.
¿ì¸®°¡ »ý°¢ÇÑ ³»¿ëÀ» ÄÄÇ»ÅÍ ¾ð¾î·Î ±¸ÇöÇÏ´Â °ÍÀº ÄÄÇ»ÅÍ ¾ð¾î¿¡ ´É¼÷ÇÑ »ç¶÷µé¿¡°Ôµµ ½±Áö ¾ÊÀº ¹®Á¦ÀÌ´Ù. ¼ö¸¹Àº ¹Ýº¹°ú ¿¬½À, ±×¸®°í ¿À·ù°¡ ¹ß»ýÇÏ¿´À» ½Ã À̸¦ ÇØ°áÇÏ´Â µð¹ö±ë ÈÆ·ÃÀ» ÅëÇØ ±¸Çö´É·ÂÀ» Å°¿ö¾ß ÇÑ´Ù. |