35-1-³ª.Ä«µå ¼³°è

°í½ºÅé °ÔÀÓÀº ¿©·¯ °¡Áö °´Ã¼µéÀÌ »óÈ£ ÀÛ¿ëÇϸ鼭 ¿î¿µµÇ´Â °ÔÀÓÀÌ´Ù. ±×·¡¼­ È­ÅõÆÇÀÇ °¢ ½ÇüµéÀ» ¸ðµ¨¸µÇÏ¿© Ŭ·¡½º·Î Ç¥ÇöÇÏ´Â Ãß»óÈ­ ÀÛ¾÷À» ¸ÕÀú ÇØ¾ß ÇÑ´Ù. ÀÌ ÀÛ¾÷À» ÇÏ·Á¸é ½ÇÁ¦·Î ´ã¿ä À§¿¡ È­Åõ¸¦ ÆîÃÄ ³õ°í °ÔÀÓÀ» Çϸ鼭 °¢ »ç¹°ÀÌ ¾î¶² Ư¼ºÀ» °¡Áö¸ç ¾î¶² ÇൿÀ» ÇÏ´ÂÁö¸¦ Àß ºÐ¼®ÇØ¾ß ÇÑ´Ù. »ç¶÷ÀÌ ÆÐ¸¦ ¼¯¾î¼­ µ¹¸®°í Ç÷¹À̾ Ä«µå¸¦ ³»°í ÀÏÄ¡ÇÏ´Â Ä«µå¸¦ ¸ÔÀ¸¸é¼­ °ÔÀÓÀ» ÁøÇàÇÏ´Â °ÍÀ» ÄÚµå·Î Èä³»³»±â¸¸ ÇÏ¸é °ÔÀÓÀÌ ¿Ï¼ºµÇ´Â °ÍÀÌ´Ù. ±×·¸´Ù¸é ½ÇÁ¦ °í½ºÅé °ÔÀÓÆÇÀÌ ¾î¶»°Ô »ý°å´ÂÁö »ý°¢ÇØ º¸ÀÚ. Ãß»óÈ­¸¦ ÇÒ ¶§´Â »ç¹°ÀÇ Æ¯¼ºÀ» Àß »ó»óÇØ ºÁµµ µÇÁö¸¸ ±×º¸´Ù´Â ½ÇÁ¦ »ç¹°À» Á÷Á¢ º¸°í ¸¸Áö¸é¼­ °¡Áö°í ³î¾Æ ºÁ¾ß ÇÑ´Ù.

ÀÌ »çÁø¼Ó¿¡ µîÀåÇÏ´Â ¸ðµç ¹°Ã¼µéÀÌ ÇÁ·Î±×·¥¿¡¼­´Â ´Ù °´Ã¼°¡ µÈ´Ù. ½ÇÁ¦ È­ÅõÆÇÀ̶ó¸é ¿©±â¿¡ Àç¶³ÀÌ, ¸ÆÁÖ, À½·á¼ö µîµµ ÇÊ¿äÇϰÚÁö¸¸ °ÔÀÓ°ú´Â Á÷Á¢ÀûÀÎ »ó°üÀÌ ¾øÀ¸¹Ç·Î Á¦¿ÜÇϵµ·Ï ÇÏÀÚ. ¿©´ãÀÌÁö¸¸ »õº®¿¡ È¥ÀÚ¼­ ÀÌ »çÁøÀ» Âï´Ù°¡ ¾Æ³»¿¡°Ô µéÄÑ µµ´ëü ¹¹ÇÏ´Â ÁþÀ̳İí ÇÉÀÜÀ» µé¾ú¾ú´Âµ¥ ¾îÁö°£È÷µµ Ȳ´çÇßÀ» °ÍÀÌ´Ù.

Àü¿ª »ó¼ö

ÀÌ ¿¹Á¦´Â ÁÙ ¼ö°¡ 500ÁÙÀÌ ³ÑÀ¸¹Ç·Î Àüü ¼Ò½º¸¦ ÇÑ ¹ø¿¡ º¸ÀÌÁö ¾Ê°í ¸Å Ŭ·¡½º¸¦ ¸¸µé ¶§¸¶´Ù °ü·Ã ¼Ò½º¸¦ º¸À̵µ·Ï ÇÑ´Ù. ¹°·Ð ÄÄÆÄÀÏ °¡´ÉÇÑ Àüü ¼Ò½º´Â ¿¹Á¦ ½©¿¡ Á¦°øµÈ´Ù. ¼Ò½ºÀÇ ¼±µÎ´Â ´ÙÀ½°ú °°ÀÌ µÇ¾î ÀÖ´Ù.

 

#include <Turboc.h>

#include <assert.h>

#include <iostream>

using namespace std;

 

const int MaxCard=48;

const int CardGap=4;

const int Speed=1000;

const int PromptSpeed=2000;

 

ÇÊ¿äÇÑ Çì´õ ÆÄÀÏÀ» ÀÎŬ·çµåÇÏ°í ³×ÀÓ ½ºÆäÀ̽º ¼±¾ðÀ» ÇÑ ÈÄ 4°³ÀÇ Àü¿ª »ó¼ö¸¦ Á¤ÀÇÇÑ´Ù. ÀÌ »ó¼öµéÀº °ÔÀÓÆÇÀÇ ¹èÄ¡³ª ¿î¿µ ¹æ½ÄÀ» Á¶Á¤Çϴµ¥ #defineÀ¸·Î Á¤ÀÇÇØµµ µÇÁö¸¸ C++½º·´°Ô ÀÛ¼ºÇϱâ À§ÇØ const »ó¼ö¸¦ »ç¿ëÇß´Ù.

MaxCard´Â È­ÅõÀÇ ÃÑ °³¼öÀε¥ ¾Ë´Ù½ÃÇÇ È­Åõ´Â 48°³ÀÇ Ä«µå·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌ °ªÀ» ¹Ù²ð¸®´Â Àý´ë·Î ¾øÀ¸¹Ç·Î º¸±â ÁÁ°Ô MaxCard¶ó´Â À̸§À» ºÙ¿© ÁÖ¾ú´Ù. CardGapÀº Ä«µå¸¦ ³ª¿­ÇÒ ¶§ÀÇ °£°ÝÀε¥ Ä«µå Çϳª´Â 3¹®ÀÚ ±æÀ̸¦ °¡Áö¹Ç·Î °ø¹é Çϳª¸¦ °í·ÁÇÏ¿© °£°ÝÀ» 4·Î Á¤ÀÇÇß´Ù. Speed¿Í PromptSpeed´Â Ä«µå¸¦ ³»°Å³ª ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÒ ¶§ ´ë±âÇÒ ½Ã°£À̸ç ÀüüÀûÀÎ °ÔÀÓ ÁøÇà ¼Óµµ¸¦ Á¶ÀýÇÑ´Ù.

Ä«µå

Àü¿ª »ó¼ö Á¤Àǹ® ´ÙÀ½¿¡´Â °ÔÀÓ¿¡ µîÀåÇÏ´Â »ç¹°µéÀ» Ŭ·¡½º·Î Çϳª¾¿ Á¤ÀÇÇÑ´Ù. ¸ÕÀú SCard Ŭ·¡½º´Â ÀÌ °ÔÀÓÀÇ °¡Àå ¿øÀÚÀûÀÎ ´ÜÀ§ÀÎ È­Åõ ÇÑ ÀåÀ» Ç¥ÇöÇϴ Ŭ·¡½ºÀÌ´Ù. ½ÇÁ¦ À̸§Àº È­Åõ¶ó°í ÇØ¾ß°ÚÁö¸¸ Ä«µå¶ó´Â ¿ë¾î°¡ ´õ ÀϹÝÀûÀ̹ǷΠSCard¶ó´Â À̸§À» ºÙ¿´´Ù.

 

// È­Åõ ÇÑÀåÀ» Ç¥ÇöÇϴ Ŭ·¡½º

struct SCard

{

     char Name[4];

     SCard() { Name[0]=0; }

     SCard(const char *pName) {

          strcpy(Name,pName);

     }

     int GetNumber() const {

          if (isdigit(Name[0])) return Name[0]-'0';

          if (Name[0]=='J') return 10;

          if (Name[0]=='D') return 11;

          return 12;

     };

     int GetKind() const {

          if (strcmp(Name+1,"±¤")==0) return 0;

          else if (strcmp(Name+1,"½Ê")==0) return 1;

          else if (strcmp(Name+1,"¿À")==0) return 2;

          else return 3;

     }

     friend ostream &operator <<(ostream &c, const SCard &C) {

          return c << C.Name;

     }

     bool operator ==(const SCard &Other) const {

          return (strcmp(Name,Other.Name) == 0);

     }

     bool operator <(const SCard &Other) const {

          if (GetNumber() < Other.GetNumber()) return true;

          if (GetNumber() > Other.GetNumber()) return false;

          if (GetKind() < Other.GetKind()) return true;

          return false;

     }

};

 

´ëºÎºÐÀÇ µ¿ÀÛÀÌ °£´ÜÇϹǷΠºÐ¼®ÇÏ±â ÆíÇÏ°Ô ÀζóÀÎÀ¸·Î Á¤ÀÇÇß´Ù. Ŭ·¡½º°¡ ¾Æ´Ñ ±¸Á¶Ã¼·Î ¼±¾ðµÇ¾î Àִµ¥ ±¸Ã¼ÀûÀÎ µ¿ÀÛÀº Ä«µå¸¦ ¼ÒÀ¯ÇÏ´Â µ¥Å©³ª Ç÷¹À̾ Á¤Àǵǰí Ä«µå ÀÚü¿¡´Â Ưº°ÇÑ µ¿ÀÛÀÌ ÇÊ¿ä¾ø±â ¶§¹®ÀÌ´Ù. ¹°·Ð Ŭ·¡½º·Î ¼±¾ðÇÏ°í ¼±µÎ¿¡ public:À» ºÙÀÌ¸é ¶È°°¾ÆÁö±â´Â ÇÏÁö¸¸ ÀÌ·± °ø°³µÈ ÀÚ·áÇü¿¡´Â ±¸Á¶Ã¼°¡ ´õ ¾î¿ï¸®¸ç ±×·¡¼­ Ŭ·¡½º À̸§¾Õ¿¡ S¸¦ ºÙ¿© ±¸Á¶Ã¼ÀÓÀ» ºÐ¸íÈ÷ Çß´Ù.

Ä«µåÀÇ ¼Ó¼ºÀ¸·Î´Â ¼ýÀÚ¿Í Á¾·ù°¡ ÀÖ´Ù. È­Åõ´Â 1~12±îÁö °¢ 4À徿 ÃÑ 48ÀåÀÇ Ä«µå·Î ±¸¼ºµÇ¸ç °¢ ¼ýÀÚÀÇ Ä«µå¿¡´Â ±¤, ½Ê, ¿À, ÇÇ ³× Á¾·ù°¡ Æ÷ÇԵȴÙ. ¼ýÀÚ¿Í Á¾·ù ¿Ü¿¡ Å©±â³ª »ö±ò, µÎ²²°¡ ´Þ¶óÁö´Â °ÍÀº ¾Æ´Ï¹Ç·Î ¸â¹ö º¯¼ö·Î´Â ÀÌ µÎ °¡Áö ¼Ó¼º¸¸ Ç¥ÇöÇÒ ¼ö ÀÖÀ¸¸é µÈ´Ù. Ä«µåÀÇ À̸§Àº ¼ýÀÚ ÇÑ ÀÚ¸®¿Í ÇÑ±Û ÇÑ ±ÛÀÚ·Î ±¸¼ºµÇ¹Ç·Î ³Î ¹®ÀÚ±îÁö °í·ÁÇÏ¿© Å©±â 4ÀÇ °íÁ¤ ±æÀÌ ¹®ÀÚ ¹è¿­À̸é ÃæºÐÇÏ´Ù. ±×·¡¼­ SCard´Â charÇü ¹è¿­ Name¸¸À» ¸â¹ö º¯¼ö·Î °¡Áø´Ù. °¡º¯ ±æÀÌ´Â ÀÌ·¡ Àú·¡ ´Ù·ç±â ±ÍÂúÀº ¹®Á¦°¡ ¸¹¾Æ °íÁ¤µÈ ±æÀ̸¦ ¾²´Â °ÍÀÌ Æí¸®ÇÏ´Ù.

10¹ø ÀÌ»óÀÇ Ä«µå´Â Åë»ó ¼ýÀÚ¸¦ ºÎ¸£Áö ¾Ê°í º°µµÀÇ À̸§ÀÌ Àִµ¥ ¼ýÀÚ¿¡ 1¹ÙÀÌÆ®¸¸ ÇÒ´çµÇ¾î ÀÖÀ¸¹Ç·Î Àû´çÇÑ ¾ËÆÄºª ¹®ÀÚ¸¦ ¾²±â·Î ÇÑ´Ù. 10¹ø Ä«µå´Â Àå ¶Ç´Â Ç³À̶ó°í ºÒ¸®¹Ç·Î ¾ËÆÄºª J¸¦ ¾²±â·Î ÇßÀ¸¸ç 12¹ø Ä«µå´Â ºñ¶ó°í ºÎ¸£¹Ç·Î ¾ËÆÄºª B°¡ Àû´çÇÏ´Ù. 11¹ø Ä«µå´Â D¶ó´Â ¾ËÆÄºªÀ» ºÙ¿´´Âµ¥ D°¡ ¹«½¼ ¶æÀÎÁö´Â ±»ÀÌ ¹àÈ÷°í ½ÍÁö ¾Ê´Ù. ¸»ÇÏÁö ¾Ê¾Æµµ ¹«½¼ ¶æÀÎÁö ´ëºÎºÐ ¾Ë ¼ö ÀÖÀ»ÅÙµ¥ Áö±Ý ´ç½ÅÀÇ ¸Ó¸®¼Ó¿¡ ¶°¿À¸£´Â ±× ¶æÀÌ ºÐ¸íÇÏ´Ù. ¿ÀÂ¥¸® Ä«µå´Â ÈçÈ÷ '¶ì'¶ó°í ºÎ¸£´Âµ¥ ÅØ½ºÆ® ȯ°æ¿¡¼­ ²®µ¥±â¸¦ ÀǹÌÇÏ´Â 'ÇÇ'¿Í ±ÛÀÚ°¡ Àß ±¸ºÐµÇÁö ¾Ê¾Æ '¿À'¶ó´Â ±ÛÀÚ¸¦ ¾²±â·Î ÇÑ´Ù. ÀÌ Ç¥Çö´ë·Î¸é È­ÅõÀå¿¡ ´ÙÀ½Ã³·³ À̸§ÀÌ ºÙ´Â´Ù.

SCard´Â Á¤Àû ¹è¿­ Çϳª¸¸À» ¸â¹ö º¯¼ö·Î °¡Áö¸ç µ¿Àû ÇÒ´çÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î º°µµÀÇ º¹»ç »ý¼ºÀÚ, ÆÄ±«ÀÚ, ´ëÀÔ ¿¬»êÀÚ µûÀ§¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù. SCard °´Ã¼³¢¸®´Â ±×³É ´ëÀÔÇϱ⸸ ÇÏ¸é µÈ´Ù. ´Ü, const char *·ÎºÎÅÍ ÃʱâÈ­¸¦ ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ÀÌ Àμö¸¦ ¹Þ´Â »ý¼ºÀÚ°¡ Á¤ÀǵǾî Àִµ¥ ¹®ÀÚ¿­À» NameÀ¸·Î º¹»ç¸¸ ÇÑ´Ù. ÀÌ »ý¼ºÀÚ°¡ Á¤ÀǵǾî ÀÖÀ¸¸é È­ÅõÆÐ¸¦ ¹®ÀÚ¿­ ¹è¿­·Î ½±°Ô ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù. µðÆúÆ® »ý¼ºÀÚ´Â NameÀ» ºó ¹®ÀÚ¿­·Î ÃʱâÈ­Çϴµ¥ ºó Ä«µå°¡ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ¾î ÀÏ´Ü ¾²·¹±â¸¸ Ä¡¿ö µÎ¾ú´Ù. Name[0]°¡ NULLÀ̸é ÀÌ Ä«µå´Â ºó Ä«µåÀÌ´Ù. ºó Ä«µå´Â Ä«µå¸¦ ¼¯À» ¶§, »ó´ë¹æÀÇ ÇǸ¦ »¯µé¾î ¿Ã ¶§ Çǰ¡ ¾ø´Â °æ¿ìÀÇ ¿¹¿Ü 󸮸¦ À§ÇØ ÇÊ¿äÇÏ´Ù.

GetNumber, GetKind ÇÔ¼ö´Â Ä«µåÀÇ ¼ýÀÚ¿Í Á¾·ù¸¦ Á¶»çÇÑ´Ù. 1~9»çÀÌÀÇ ¼ýÀÚ Ä«µå´Â ¼ýÀÚ¸¦ Àоî ÁÖ°í J, D, B µî 10À» ³Ñ´Â Ä«µå´Â 10, 11, 12¸¦ ¸®ÅÏÇÑ´Ù. ÀÌ ¼ýÀÚ´Â Ä«µå Á¤·Ä¿¡ »ç¿ëµÇ¹Ç·Î ¼ø¼­¿¡ ¸Â°Ô Á¶»çÇØ¾ß ÇÑ´Ù. Ä«µåÀÇ ¼ýÀÚ´Â NameÀÇ Ã¹ ¹ÙÀÌÆ®¿¡ ÀÖÀ¸¹Ç·Î Name[0]¸¸ ÀÐÀ¸¸é µÈ´Ù. Ä«µåÀÇ Á¾·ù´Â Name+1ÀÇ ¹®ÀÚ¿­À» ÀÐ¾î ±¤, ½Ê, ¿À, ÇÇ µî°ú ºñ±³ÇÑ´Ù. Ä«µåÀÇ Á¾·ùµµ Á¤·Ä¿¡ »ç¿ëµÇ¹Ç·Î ¸ÕÀú ¿À´Â Ä«µå¸¦ ³·Àº ¼ýÀÚ·Î Á¶»çÇØ¾ß ÇÑ´Ù. ÀÌ µÎ ÇÔ¼ö´Â Ä«µå³¢¸® Á¾·ù°¡ °°¾Æ ¸ÔÀ» ¼ö ÀÖ´ÂÁö, ¸ÔÀº ÆÐ¸¦ ¾îµð´Ù Ãâ·ÂÇÒÁö µîÀ» Á¶»çÇÒ ¶§ »ç¿ëµÈ´Ù.

Ä«µå Ãâ·Â°ú ºñ±³¸¦ À§ÇÑ ¿¬»êÀڵ鵵 Æ÷ÇԵǾî ÀÖ´Ù. << ¿¬»êÀÚ´Â Ä«µå¸¦ È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â ÇÁ·£µå ÇÔ¼öÀÌ´Ù. ostream °´Ã¼(Åë»ó cout)·Î Ä«µåÀÇ Name ¸â¹öÀÎ ¹®ÀÚ¿­À» Ãâ·ÂÇÏ°í ¿¬¼âÀûÀÎ Ãâ·ÂÀ» À§ÇØ coutÀÇ ·¹ÆÛ·±½º¸¦ ´Ù½Ã ¸®ÅÏÇÑ´Ù. == ¿¬»êÀÚ´Â µÎ Ä«µå°¡ ¿ÏÀüÈ÷ °°ÀºÁö °Ë»çÇϴµ¥ Name ¸â¹ö°¡ ¿ÏÀüÈ÷ ÀÏÄ¡ÇÏ¸é °°Àº Ä«µåÀÌ´Ù. < ¿¬»êÀÚ´Â Á¤·ÄÀ» À§ÇØ µÎ Ä«µåÀÇ ´ë¼Ò¸¦ ºñ±³Çϴµ¥ ÀÛÀº Ä«µå°¡ ´õ ¾ÕÂÊ¿¡ ¿Í¾ß ÇÑ´Ù. ¼ýÀÚ¸¦ ¿ì¼± ºñ±³ÇØ º¸°í ¼ýÀÚ°¡ ´õ ÀÛÀ¸¸é trueÀ̰í Å©¸é falseÀÌ´Ù. ¼ýÀÚ°¡ ÀÏÄ¡ÇÒ °æ¿ì´Â Á¾·ù·Î ÆÇº°Çϴµ¥ ±¤ÀÌ °¡Àå ¾Õ¿¡ ¿À°í ½Ê, ¿À, ÇÇ ¼øÀ¸·Î ¿Â´Ù. µÎ Ä«µå¸¦ ºñ±³ÇÏ´Â ¹æ¹ýÀº ¾ó¸¶µçÁö ´õ °£´ÜÇÏ°Ô ±¸ÇöÇÒ ¼ö Àִµ¥ ´ÙÀ½ Äڵ嵵 »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù.

 

     bool operator <(const SCard &Other) const {

          return (strcmp(Name,Other.Name) < 0);

     }

 

µÎ Ä«µåÀÇ Name ¹®ÀÚ¿­³¢¸® ºñ±³ÇÑ °á°ú¸¦ ¸®ÅÏÇØµµ µÇ´Âµ¥ ±¤, ½Ê, ¿À, Çǰ¡ ¿ì¿¬È÷ °¡³ª´Ù¼øÀ̱⠶§¹®¿¡ Á¾·ù·Î´Â Á¤È®ÇÑ ¼ø¼­°¡ ¸Å°ÜÁöÁö¸¸ ¾ÕÀÇ ¼ýÀÚ´Â J, D, B°¡ ¾ËÆÄºª¼øÀÌ ¾Æ´Ï¶ó Á¤È®ÇÑ ºñ±³´Â ¾Æ´Ï¶ó°í ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â Á¶±Ý ²Ç¼ö°¡ ¼¯¿© ÀÖÁö¸¸ Á¤È®ÇÏ°Ô µ¿ÀÛÇÑ´Ù.

 

     bool operator <(const SCard &Other) const {

          return (GetNumber()*100+GetKind() < Other.GetNumber()*100+Other.GetKind());

     }

 

¼ýÀÚ¿Í Á¾·ù¸¦ ÀÏÂ÷¿øÀÇ °ªÀ¸·Î ¹Ù²ÙµÇ ¼ýÀÚ¿¡ ¿ì¼±±ÇÀ» ÁÖ±â À§Çؼ­ 100À̶ó´Â ÃæºÐÇÑ °ªÀ» °öÇϰí Á¾·ù°ªÀ» ´õÇß´Ù. ±×·¡¼­ 1±¤ÀÌ 3ÇǺ¸´Ù ÈξÀ ´õ ÀÛ¾Æ ¾ÕÂÊ¿¡ ¿Â´Ù. À̶§ °öÇÏ´Â °ª 100Àº 4ÀÌ»óÀ̸é È¿°ú°¡ µ¿ÀÏÇѵ¥ Àß µ¿ÀÛÇϱâ´Â ÇÏÁö¸¸ ¿ØÁö ¾î»öÇØ º¸¿© ¿¹Á¦¿¡¼­´Â Äڵ尡 Á» ±æ¾îÁö´õ¶óµµ Á¤¼®´ë·Î ºñ±³Çß´Ù.

SCard Ŭ·¡½º´Â Ä«µå ÇÑ À常À» Ç¥ÇöÇϴµ¥ ½ÇÁ¦ °ÔÀÓ¿¡¼­´Â ÀÌ·± Ä«µå 48ÀåÀÌ ÇÊ¿äÇÏ´Ù. Ä«µåÀÇ ±¸¼ºÀº ¼ýÀÚ¸¶´Ù ´Þ¶ó¼­ ÀÏÁ¤ÇÑ ±ÔÄ¢ÀÌ ¾øÀ¸¹Ç·Î ¹è¿­¿¡ ÀÏÀÏÀÌ ÃʱⰪÀ» ³ª¿­ÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù. 1¹ø Ä«µå´Â ±¤ÀÌ ÀÖ´Â ´ë½Å ½ÊÂ¥¸® Ä«µå°¡ ¾øÁö¸¸ 2¹ø Ä«µå´Â ±¤ÀÌ ¾ø´Â ´ë½Å ½ÊÂ¥¸® Ä«µå°¡ ÀÖ°í D¹ø Ä«µå´Â ÇǸ¸ ¼¼ Àå ÀÖ¾î Ä«µå ¼ýÀÚº°·Î ±¸¼ºÀÌ ºÒ±ÔÄ¢ÀûÀÌ´Ù. ÀÌ·± ºÒ±ÔÄ¢ÀûÀÎ °ªÀº ¹è¿­·Î ÃʱâÈ­ÇÏ´Â °ÍÀÌ °¡Àå ¹«³­ÇÏ´Ù.

 

// È­ÅõÀÇ Ãʱâ Ä«µå ¸ñ·Ï

SCard HwaToo[MaxCard]={

     "1±¤","1¿À","1ÇÇ","1ÇÇ","2½Ê","2¿À","2ÇÇ","2ÇÇ","3±¤","3¿À","3ÇÇ","3ÇÇ",

     "4½Ê","4¿À","4ÇÇ","4ÇÇ","5½Ê","5¿À","5ÇÇ","5ÇÇ","6½Ê","6¿À","6ÇÇ","6ÇÇ",

     "7½Ê","7¿À","7ÇÇ","7ÇÇ","8±¤","8½Ê","8ÇÇ","8ÇÇ","9½Ê","9¿À","9ÇÇ","9ÇÇ",

     "J½Ê","J¿À","JÇÇ","JÇÇ","D±¤","DÇÇ","DÇÇ","DÇÇ","B±¤","B½Ê","B¿À","BÇÇ"

};

 

Å©±â 48ÀÇ SCardÇü ¹è¿­ HwaToo¿¡´Â È­Åõ¸¦ Á¾·ùº°·Î ³ª¿­ÇØ µÎ¾ú´Ù. ÃʱⰪµéÀÌ ¹®ÀÚ¿­ »ó¼ö·Î Ç¥±âµÇ¾î Àִµ¥ SCard Ŭ·¡½º°¡ const char *¸¦ Àμö·Î ¹Þ¾Æ Name¿¡ º¹»çÇÏ´Â »ý¼ºÀÚ¸¦ Á¤ÀÇÇϰí ÀÖÀ¸¹Ç·Î ÀÌ ¹è¿­ ¼±¾ð¹®ÀÌ Á¦´ë·Î µ¿ÀÛÇÑ´Ù. ÀÌ ¹è¿­À» µ¥Å©¿¡ ¹«ÀÛÀ§·Î Áý¾î ³ÖÀ¸¸é °ÔÀÓ Áغñ°¡ ¿Ï·áµÇ´Â °ÍÀÌ´Ù.

Ä«µå¼Â

°í½ºÅé¿¡´Â µÚÁýÀ» Ä«µå¸¦ ½×¾Æ ³õ´Â µ¥Å©, Ç÷¹À̾îÀÇ Ä«µå ÆÐ, ´ã¿ä¿¡ ±ò¸° ÆÐ µî Ä«µåÀÇ ÁýÇÕÀÌ ¿©·¯ °³ ³ª¿Â´Ù. CCardSet Ŭ·¡½º´Â ÀÌ·± Ä«µåÀÇ ÁýÇÕÀ» °ü¸®Çϴ Ŭ·¡½ºÀÌ¸ç »ðÀÔ, »èÁ¦, °Ë»ö µî ÁýÇÕÀ» °ü¸®ÇÏ´Â ´ëºÎºÐÀÇ µ¿ÀÛÀ» Á¦°øÇÑ´Ù. ½ÇÁ¦ °ÔÀÓ¿¡ »ç¿ëµÉ Ä«µå ÁýÇÕÀº ÀÌ Å¬·¡½º·ÎºÎÅÍ ÆÄ»ýµÈ´Ù.

 

// Ä«µåÀÇ ÁýÇÕÀ» °ü¸®Çϴ Ŭ·¡½º

class CCardSet

{

protected:

     SCard Card[MaxCard];

     int Num;

     const int sx,sy;

     CCardSet(int asx,int asy) : sx(asx), sy(asy) { Num=0; }

 

public:

     int GetNum() { return Num; }

     SCard GetCard(int idx) { return Card[idx]; }

     void Reset() {

          for (int i=0;i<MaxCard;i++) Card[i].Name[0]=0;

          Num=0;

     }

     void InsertCard(SCard C);

     SCard RemoveCard(int idx);

     int FindSameCard(SCard C,int *pSame);

     int FindFirstCard(const char *pName);

};

 

void CCardSet::InsertCard(SCard C) {

     int i;

 

     if (C.Name[0] == 0) return;

     for (i=0;i<Num;i++) {

          if (C < Card[i]) break;

     }

     memmove(&Card[i+1],&Card[i],sizeof(SCard)*(Num-i));

     Card[i]=C;

     Num++;

}

 

SCard CCardSet::RemoveCard(int idx) {

     assert(idx < Num);

     SCard C=Card[idx];

     memmove(&Card[idx],&Card[idx+1],sizeof(SCard)*(Num-idx-1));

     Num--;

     return C;

}

 

int CCardSet::FindSameCard(SCard C,int *pSame) {

     int i,num;

     int *p=pSame;

 

     for (i=0,num=0;i<Num;i++) {

          if (Card[i].GetNumber() == C.GetNumber()) {

              num++;

              *p++=i;

          }

     }

     *p=-1;

     return num;

}

 

int CCardSet::FindFirstCard(const char *pName) {

     int i;

 

     for (i=0;i<Num;i++) {

          if (strstr(Card[i].Name,pName) != NULL) {

              return i;

          }

     }

     return -1;

}

 

¸ÕÀú ¸â¹ö º¯¼öÀÇ ±¸¼ºÀ» º¸ÀÚ. SCardÀÇ °´Ã¼ ¹è¿­ Card¸¦ Å©±â 48·Î ¼±¾ðÇÏ¿´´Ù. CCardSet°ú SCard´Â Æ÷ÇÔ °ü°è(HAS A)¶ó°í ÇÒ ¼ö ÀÖ´Ù. NumÀº ÀÌ Ä«µå ÁýÇÕÀÇ ÇöÀç °³¼öÀ̸ç sx, sy´Â Ä«µå ÁýÇÕÀ» ±×¸± È­¸é»óÀÇ ÁÂÇ¥°ªÀÌµÇ ÁÂÇ¥´Â ÇÑ ¹ø Á¤ÇØÁö¸é ´Ù½Ã º¯°æÇÒ Çʿ䰡 ¾øÀ¸¹Ç·Î »ó¼ö·Î ¼±¾ðÇß´Ù. ÀÌ ¸â¹öµéÀº ¿ÜºÎ¿¡¼­ ÇԺηΠ°Çµå¸± ¼ö ¾øµµ·Ï º¸È£µÇ¾î ÀÖµÇ ÆÄ»ý Ŭ·¡½º¿¡ ´ëÇØ¼­´Â ¾×¼¼½º¸¦ Çã°¡ÇÏ´Â protected ¾×¼¼½º ¼Ó¼ºÀ» °¡Áø´Ù.

»ý¼ºÀÚ´Â È­¸é ÁÂÇ¥¸¦ Àμö·Î Àü´Þ¹Þ¾Æ ÃʱâÈ­ ¸®½ºÆ®¿¡¼­ »ó¼ö ¸â¹ö¸¦ ÃʱâÈ­Çϰí Ä«µåÀÇ °³¼ö¸¦ 0À¸·Î ¸¸µé¾î Ä«µå°¡ Çϳªµµ ¾ø´Â »óÅ·ΠÁýÇÕÀ» »ý¼ºÇÑ´Ù. Card °´Ã¼ ¹è¿­Àº º°µµ·Î ÃʱâÈ­ÇÏÁö ¾Ê¾Æµµ SCard Ŭ·¡½ºÀÇ µðÆúÆ® »ý¼ºÀÚ°¡ NameÀÇ ¾²·¹±â¸¦ Ä¡¿ì¹Ç·Î ¸ðµç Ä«µå´Â ÃÖÃÊ ºó Ä«µåÀÌ´Ù. ÁÖÀÇÇØ¼­ º¼ °ÍÀº CCardSet Ŭ·¡½ºÀÇ »ý¼ºÀÚ°¡ protected ¾×¼¼½º ¼Ó¼ºÀ» °¡Á® ¿ÜºÎ·ÎºÎÅÍ ÀºÆóµÇ¾î ÀÖ´Ù´Â Á¡ÀÌ´Ù. ±×·¡¼­ ÀÌ Å¬·¡½º´Â Á÷Á¢ °´Ã¼¸¦ »ý¼ºÇÏÁö ¸øÇÏ¸ç ÆÄ»ý Ŭ·¡½º¸¦ ÅëÇØ¼­¸¸ ÃʱâÈ­µÉ ¼ö ÀÖ´Ù.

GetNum, GetCard ¸â¹ö ÇÔ¼ö´Â º¸È£µÈ ¸â¹ö º¯¼ö¸¦ ´ë½Å Àоî ÁÖ´Â ¾×¼¼½º ÇÔ¼öÀÌ´Ù. ´ëÀÀµÇ´Â Set ÇÔ¼ö°¡ ¾øÀ¸¹Ç·Î Card ¹è¿­°ú NumÀº ¿ÜºÎ¿¡¼­ Àб⸸ ÇÒ ¼ö ÀÖ´Ù. Reset ÇÔ¼ö´Â Ä«µå¸¦ ÀüºÎ ºó Ä«µå·Î ¸¸µé°í °³¼ö¸¦ 0À¸·Î ¸¸µé¾î Ä«µå ÁýÇÕÀ» ÅÖÅÖ ºó »óÅ·ΠÀçÃʱâÈ­ÇÑ´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â ´çÀå »ç¿ëµÇÁö ¾ÊÁö¸¸ °ÔÀÓÀ» ¿©·¯ ¹ø ÇѴٰųª Á¶°Ç¿¡ ¸ÂÁö ¾Ê´Â ÁýÇÕÀÌ »ý¼ºµÇ¾úÀ» ¶§ ÀçÃʱâÈ­¸¦ À§ÇØ ¹Ì¸® ÀÛ¼ºÇØ µÎ¾ú´Ù.

³ª¸ÓÁö ¸â¹ö ÇÔ¼öµéÀº ±æÀ̰¡ ±æ°í ÀÚÁÖ È£ÃâµÇ±â ¶§¹®¿¡ ³»ºÎ¿¡ ÀζóÀÎÀ¸·Î Á¤ÀÇÇÏÁö ¾Ê°í ¿ÜºÎ¿¡ Á¤ÀÇÇß´Ù. Ä«µå ÁýÇÕ¿¡ Ä«µå¸¦ »ðÀÔ, Á¦°ÅÇÏ°í °°Àº ¼ýÀÚ¸¦ °¡Áö´Â Ä«µåÀÇ ¸ñ·Ï°ú ÀÏÄ¡ÇÏ´Â Ä«µå¸¦ °Ë»öÇÏ´Â µî ÁýÇÕ °ü¸®¿¡ ²À ÇÊ¿äÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. ¸ÕÀú Ä«µå¸¦ »ðÀÔÇÏ´Â InsertCard ÇÔ¼ö¸¦ º¸ÀÚ. ÀÌ ÇÔ¼ö´Â Ä«µå¸¦ Á¤·ÄµÈ À§Ä¡¿¡ »ðÀÔÇÏ¸ç ºó Ä«µå´Â »ðÀÔÀ» °ÅºÎÇÑ´Ù. Ç÷¹À̾ °¡Áö°í ÀÖ´Â ÆÐ³ª ´ã¿ä¿¡ ±ò¸° ÆÐ¸¦ ÇÑ´«¿¡ À°¾È °Ë»öÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ Á¤·ÄÀº ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.

³ª¿­µÈ Ä«µåµé Áß ÀÚ½ÅÀÇ À§Ä¡¸¦ ã¾Æ Á¤È®ÇÑ À§Ä¡¿¡ ³¢¾îµé¾î¾ß Á¤·Ä »óŸ¦ °è¼Ó À¯ÁöÇÒ ¼ö ÀÖ´Ù. InsertCard´Â Ä«µåÀÇ Ã³À½ºÎÅÍ Num±îÁö ¼øÈ¸Çϸ鼭 »ðÀÔÇÒ Ä«µå¿Í ÁýÇÕ³»ÀÇ Ä«µå¸¦ ´ë¼Ò ºñ±³ÇÏ¿© »ðÀÔÇÒ Ä«µåº¸´Ù Å« ÃÖÃÊÀÇ Ä«µå¸¦ ã¾Æ ±× À§Ä¡¿¡ »ðÀÔÇÑ´Ù. À§ ±×¸²ÀÇ °æ¿ì 7Çǰ¡ »ðÀ﵃ À§Ä¡´Â 7ÇǺ¸´Ù ÃÖÃÊ·Î Å« Ä«µåÀÎ 9Çǰ¡ ÀÖ´Â ÀÚ¸®ÀÌ´Ù. Ä«µå³¢¸® ¾î¶»°Ô ´ë¼Ò¸¦ ºñ±³Çϴ°¡´Â SCard Ŭ·¡½º°¡ Á¤ÀÇÇϰí ÀÖÀ¸¹Ç·Î InsertCard´Â < ¿¬»êÀÚ¸¸ »ç¿ëÇÏ¸é µÈ´Ù. À§Ä¡°¡ ¼±Á¤µÇ¸é µÚÂÊÀÇ Ä«µå´Â ÇÑÄ­¾¿ À̵¿½ÃŰ°í ºó ÀÚ¸®¿¡ »õ Ä«µå¸¦ »ðÀÔÇÏ¸ç °³¼ö¸¦ 1Áõ°¡½ÃŲ´Ù.

RemoveCard´Â ÁöÁ¤ÇÑ Ã·ÀÚÀÇ Ä«µå¸¦ Àо ¸®ÅÏÇϰí ÇØ´ç Ä«µå¸¦ ÁýÇÕ¿¡¼­ Á¦°ÅÇÑ´Ù. Ç÷¹À̾ Ä«µå¸¦ ³»°Å³ª µ¥Å©¿¡¼­ Ä«µå¸¦ ÇÑ Àå µÚÁýÀ» ¶§ ÀÌ ÇÔ¼ö°¡ È£ÃâµÉ °ÍÀÌ´Ù. Ä«µåµéÀº Á¤·Ä »óŸ¦ À¯ÁöÇØ¾ß Çϸç ÀÓÀÇ Á¢±ÙÀÌ °¡´ÉÇϱâ À§Çؼ­´Â °è¼Ó ÀÎÁ¢ÇØ ÀÖ¾î¾ß ÇϹǷΠÁ¦°ÅµÈ Ä«µå ÀÚ¸®·Î µÚÂÊÀÇ Ä«µåµéÀ» ÇÑÄ­¾¿ ¾ÕÂÊÀ¸·Î À̵¿½ÃŲ´Ù. Ä«µå °³¼ö´Â 1 °¨¼ÒÇÒ °ÍÀÌ´Ù. idx´Â ÃÑ Ä«µå °³¼öº¸´Ù Ç×»ó ´õ ÀÛ¾Æ¾ß ÇÏ¸ç ±×·¸Áö ¾Ê´Ù¸é À߸øµÈ ¿äûÀ̹ǷΠÇÁ·Î±×·¥À» ÁßÁöÇϵµ·Ï assert¹®À» »ç¿ëÇß´Ù. »ðÀÔ »èÁ¦ ÇÔ¼ö°¡ ¸¸µé¾îÁ® ÀÖÀ¸¹Ç·Î ÁýÇÕ°£¿¡ Ä«µå¸¦ À̵¿½ÃŰ´Â °ÍÀº ´ÙÀ½ ÇÑ ÁÙ·Î °£´ÜÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Ù.

 

B.InsertCard(A.RemoveCard(idx));

 

ÀÌ ¹®ÀåÀº AÀÇ idx¹øÂ° Ä«µå¸¦ B·Î ¿Å±ä´Ù. BÀÇ Á¤·ÄµÈ À§Ä¡¿¡ Á¤È®ÇÏ°Ô »ðÀÔÇÒ °ÍÀÌ¸ç µÎ ÁýÇÕÀÇ °³¼ö³ª Á¤·Ä »óÅ´ Ç×»ó Á¤È®ÇÏ°Ô À¯ÁöµÈ´Ù. Ŭ·¡½º°¡ ÀÌ·± ¼¼¼¼ÇÑ µ¿ÀÛÀ» Á¤ÀÇÇϰí ÀÖÀ¸¹Ç·Î mainÀº Àâ´ÙÇÑ ÀÏÀ» ºÎǰµé¿¡°Ô ½ÃŰ°í °ÔÀÓÀÇ ³í¸® ±¸Çö¿¡¸¸ Ä¡ÁßÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

FindSameCard´Â Àμö·Î Àü´ÞÇÑ Ä«µå C¿Í ¼ýÀÚ°¡ ÀÏÄ¡ÇÏ´Â Ä«µåÀÇ °³¼ö ¹× ÷ÀÚ ¸ñ·ÏÀ» Á¶»çÇÑ´Ù. Ç÷¹À̾ ÆÐ¸¦ ³¾ ¶§ ¸ÔÀ» °Ô ÀÖ´ÂÁö, ¿©·¯ Àå ÀÖ´Ù¸é ¾î¶² Ä«µå°¡ ÀÏÄ¡ÇÏ´ÂÁö µîÀ» Á¶»çÇÒ ¶§ ÀÌ ÇÔ¼ö°¡ »ç¿ëµÈ´Ù. °°Àº ¼ýÀÚÀÇ Ä«µå°¡ ¿©·¯ °³ ±ò¸± ¼ö ÀÖÀ¸¹Ç·Î Ç÷¹À̾ ³½ Ä«µå·Î ¿©·¯ Ä«µå Áß Çϳª¸¦ ¼±ÅÃÇØ¼­ ¸Ô¾î¾ß ÇÏ´Â »óȲÀÌ ÀÚÁÖ ÀϾ´Ù. ±×·¡¼­ ÀÌ ÇÔ¼öÀÇ ¿ªÇÒÀº °ÔÀÓ ¿î¿µ¿¡ ¾ÆÁÖ Áß¿äÇÏ´Ù.

ÀÏÄ¡ÇÏ´Â Ä«µåÀÇ °³¼ö´Â ¸®ÅϰªÀ¸·Î µ¹·ÁÁö°í ÀÏÄ¡ÇÏ´Â ¸ñ·ÏÀº arSame Á¤¼öÇü ¹è¿­¿¡ ¾ÕÂʺÎÅÍ ¼ø¼­´ë·Î ä¿ö¼­ ¸®ÅϵȴÙ. ÀÏÄ¡ÇÏ´Â Ä«µå°¡ 1ÀåÀ̶ó¸é arSame[0]¿¡ ÀÏÄ¡ÇÏ´Â Ä«µåÀÇ Ã·ÀÚ°¡ ¸®ÅϵǸç 2ÀåÀ̶ó¸é arSame[0], arSame[1]¿¡ ÷ÀÚ µÎ °³°¡ ¸®ÅϵȴÙ. »ç¿ëÀÚ°¡ ³½ Ä«µå°¡ 3±¤À̾ú´Âµ¥ ´ã¿ä¿¡ ±ò·Á ÀÖ´Â ÆÐ°¡ ´ÙÀ½°ú °°´Ù°í ÇØ º¸ÀÚ.

 

1¿À 1ÇÇ 3¿À 3ÇÇ 5½Ê 6ÇÇ 9½Ê D±¤

 

´ã¿ä¿¡ 3¹ø Ä«µå°¡ µÎ Àå ±ò·Á ÀÖÀ¸¹Ç·Î 3¿À, 3ÇÇ Áß Çϳª¸¦ ¼±ÅÃÇØ¼­ ¸ÔÀ» ¼ö ÀÖ´Ù. arSame¿¡´Â 2, 3, -1ÀÌ µé¾î°¡°í 2°¡ ¸®Å쵃 °ÍÀÌ´Ù. mainÀº ÀÌ ÇÔ¼öÀÇ Á¶»ç °á°ú¸¦ ¹ÙÅÁÀ¸·Î ¸ÔÀ» °Ô ÀÖ´ÂÁö, ¼³»ç¸¦ Çß´ÂÁö, µû´ÚÀ̳ª ÂÊÀÎÁö µîÀ» ÆÇ´ÜÇÑ´Ù. ÀÌ ÇÔ¼ö´Â °³¼ö¿Í ¸ñ·Ï µÎ °¡Áö Á¤º¸¸¦ ÇѲ¨¹ø¿¡ Á¶»çÇÑ´Ù´Â ¸é¿¡¼­´Â Æí¸®ÇÏÁö¸¸ Á¤¼öÇü ¹è¿­À» ÂüÁ¶ È£Ãâ·Î ³Ñ°Ü¾ß ÇÑ´Ù´Â ¸é¿¡¼­´Â ´Ù¼Ò ºÒÆíÇÏ´Ù. ¼ýÀÚ°¡ °°Àº Ä«µå´Â ÃÖ´ë 4ÀåÀ̹ǷΠ³¡ Ç¥½ÄÀÎ -1ÀÚ¸®±îÁö Æ÷ÇÔÇØ¼­ arSameÀº ÃÖ¼ÒÇÑ Å©±â 5 Á¤µµ´Â µÇ¾î¾ß Çϸç ÀÌ ÇÔ¼ö¸¦ ºÎ¸£±â À§ÇØ ¹è¿­À» ¸ÕÀú ¼±¾ðÇØ ³ö¾ß ÇÑ´Ù.

°¡º¯ ±æÀÌÀÇ ¸ñ·ÏÀ» Á¶»çÇÏ´Â ¹æ¹ýÀº ÀÌ ¿Ü¿¡µµ ¿©·¯ °¡Áö°¡ Àִµ¥ ¹ß°ßµÈ ¸ðµç Ç׸ñ¿¡ ´ëÇØ ƯÁ¤ÇÑ ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù¸é ¿­°Å(Enumeration)¶ó´Â ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. ¶Ç´Â °³¼ö¸¦ ¸ÕÀú Á¶»çÇϰí ÷ÀÚ ¼ø¼­´ë·Î ¸ñ·ÏÀ» °³º°ÀûÀ¸·Î Á¶»çÇÏ´Â ¹æ¹ýÀ» ¾²±âµµ ÇÑ´Ù. ÀÌ ¹æ¹ýÀ¸·Î FindSameCard ÇÔ¼ö¸¦ ÀÛ¼ºÇØ º¸¸é ´ÙÀ½°ú °°´Ù.

 

int CCardSet::FindSameCard(SCard C,int idx)

{

     int i,num;

     for (i=0,num=0;i<Num;i++) {

          if (Card[i].GetNumber() == C.GetNumber()) {

              if (idx == num) return i;

              num++;

          }

     }

     return num;

}

 

µÎ ¹øÂ° Àμö idx·Î Á¶»çÇÒ ¼ø¼­°ªÀ» ÁöÁ¤Ç쵂 ÀÌ °ªÀÌ ¹üÀ§ ¹Û(¿¹¸¦ µé¾î -1)ÀÌ¸é °³¼ö¸¦ ¸®ÅÏÇÑ´Ù. ÀÌ ¹æ¹ýÀº ÇÔ¼ö¸¦ ¿©·¯ ¹ø È£ÃâÇØ¾ß ÇϹǷΠ¼º´ÉÀº ÁÁÁö ¾ÊÁö¸¸ ÂüÁ¶ È£Ãâ¾øÀÌ ¸®Åϰª¸¸À¸·Î ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù´Â ¸é¿¡¼­´Â ¿ÀÈ÷·Á ´õ Æí¸®ÇÏ¸ç ¾ó¸¶µçÁö ¸¹Àº ¸ñ·Ïµµ Á¶»çÇÒ ¼ö ÀÖ´Ù´Â ÀÌÁ¡ÀÌ ÀÖ´Ù. ÀÌ ¿¹Á¦ÀÇ °æ¿ì Á¶»ç ´ë»ó ¸ñ·ÏÀÇ ÃÖ´ë°ªÀÌ ºÐ¸íÈ÷ Á¤ÇØÁ® ÀÖÀ¸¹Ç·Î ÇÑ ¹øÀÇ È£Ãâ·Î °³¼ö¿Í ¸ñ·ÏÀ» ´Ù Á¶»çÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇß´Ù.

FindFirstCard ÇÔ¼ö´Â ºÎºÐ ¹®ÀÚ¿­ °Ë»öÀ» ÅëÇØ ¼ýÀÚ³ª Á¾·ù°¡ ÀÏÄ¡ÇÏ´Â ÃÖÃÊÀÇ Ä«µå¸¦ °Ë»öÇÑ´Ù. ¼ýÀÚ¿Í Á¾·ù¸¦ µ¿½Ã¿¡ ÁÖ¸é Á¤È®ÇÏ°Ô ÀÏÄ¡ÇÏ´Â Ä«µå°¡ ÀÖ´ÂÁö °Ë»çÇÒ ¼öµµ ÀÖ´Ù. Á¶°Ç¿¡ ¸Â´Â Ä«µå°¡ ¹ß°ßµÇ¸é ±× ÷ÀÚ¸¦ ¸®ÅÏÇÏ°í ¾øÀ¸¸é -1À» ¸®ÅÏÇÑ´Ù. ÀÌ Ä«µå ÁýÇÕ¿¡ 5¹ø Ä«µå°¡ ÀÖ´ÂÁö, ±¤ÀÌ ÀÖ´ÂÁö µîÀ» Á¶»çÇÒ ¼ö ÀÖ°í Á¸Àç ÀÚü¸¸ Á¶»çÇÒ ¶§µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÇǹÚÀ̳ª ±¤¹ÚÀÇ °æ¿ì »ó´ëÆí¿¡ Çdzª ±¤ÀÌ Çϳªµµ ¾ø´ÂÁö¸¦ Á¶»çÇØ¾ß Çϴµ¥ À̶§ ÀÌ ÇÔ¼ö°¡ »ç¿ëµÈ´Ù. ´ÙÀ½Àº ÀÌ ÇÔ¼öÀÇ »ç¿ë¿¹ÀÌ´Ù.

 

FindFirstKind("ÇÇ")            // ¼ýÀÚ¿¡ »ó°ü¾øÀÌ Çǰ¡ ÀÖ´ÂÁö Á¶»ç

FindFirstKind("8")              // Á¾·ù¿¡ »ó°ü¾øÀÌ 8ÀÌ ÀÖ´ÂÁö Á¶»ç

FindFirstKind("4½Ê")          // 4½Ê Ä«µå°¡ ÀÖ´ÂÁö Á¶»ç

 

Ä«µå ÁýÇÕÀº Ä«µåÀÇ Å©±â ¼øÀ¸·Î Á¤·ÄµÇ¾î ÀÖÀ¸¹Ç·Î À̺Р°Ë»ö ±â¹ýÀ» »ç¿ëÇÏ¿© ¼Óµµ¸¦ ³ôÀÏ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ °ÔÀÓ¿¡¼­ Ä«µå ÁýÇÕÀº ÃÖ°í·Î Ä¿ºÃÀÚ 48À» ³ÑÁö ¾ÊÀ¸¸ç Ç÷¹À̾îÀÇ ÆÐ´Â 10°³ ÀÌÇÏÀ̹ǷΠ±»ÀÌ °ÅâÇÏ°Ô À̺Р°Ë»ö±îÁö µ¿¿øÇÒ Çʿ䰡 ¾ø´Ù. ¼øÂ÷ °Ë»öÀ¸·Î óÀ½ºÎÅÍ µÚÁ®µµ ¾ó¸¶µçÁö ªÀº ½Ã°£¿¡ °Ë»öÀ» ¿Ï·áÇÒ ¼ö ÀÖÀ¸¹Ç·Î °£´ÜÇÑ ³í¸®¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.

ÀÌ»óÀ¸·Î Ä«µå¿Í Ä«µåÀÇ ÁýÇÕÀ» Ŭ·¡½º·Î Ãß»óÈ­Çß´Ù. CCardSetÀº °í½ºÅéÀÇ Ä«µåµéÀ» °ü¸®ÇÏ´Â °¡Àå ±âº»ÀûÀÎ µ¿ÀÛÀ» Á¤ÀÇÇϴµ¥ °ÔÀÓ ±ÔÄ¢ÀÌ Ãß°¡µÇ¾î ´õ º¹ÀâÇÑ °ü¸®°¡ ÇÊ¿äÇÏ´Ù¸é ÀÌ Å¬·¡½º¸¦ È®ÀåÇÏ¸é µÈ´Ù. Àΰ£ ¼¼»ó°ú ¸¶Âù°¡Áö·Î ºÎ¸ð Ŭ·¡½º°¡ ¸¹Àº µ¿ÀÛÀ» Á¤ÀÇÇϸé ÀڽĵéÀÌ ÆíÇØÁø´Ù.