°í½ºÅé °ÔÀÓÀº ¿©·¯ °¡Áö °´Ã¼µéÀÌ »óÈ£ ÀÛ¿ëÇÏ¸é¼ ¿î¿µµÇ´Â °ÔÀÓÀÌ´Ù. ±×·¡¼ ÈÅõÆÇÀÇ °¢ ½ÇüµéÀ» ¸ðµ¨¸µÇÏ¿© Ŭ·¡½º·Î Ç¥ÇöÇÏ´Â Ãß»óÈ ÀÛ¾÷À» ¸ÕÀú ÇØ¾ß ÇÑ´Ù. ÀÌ ÀÛ¾÷À» ÇÏ·Á¸é ½ÇÁ¦·Î ´ã¿ä À§¿¡ ÈÅõ¸¦ ÆîÃÄ ³õ°í °ÔÀÓÀ» ÇÏ¸é¼ °¢ »ç¹°ÀÌ ¾î¶² Ư¼ºÀ» °¡Áö¸ç ¾î¶² ÇൿÀ» ÇÏ´ÂÁö¸¦ Àß ºÐ¼®ÇØ¾ß ÇÑ´Ù. »ç¶÷ÀÌ ÆÐ¸¦ ¼¯¾î¼ µ¹¸®°í Ç÷¹À̾ Ä«µå¸¦ ³»°í ÀÏÄ¡ÇÏ´Â Ä«µå¸¦ ¸ÔÀ¸¸é¼ °ÔÀÓÀ» ÁøÇàÇÏ´Â °ÍÀ» ÄÚµå·Î Èä³»³»±â¸¸ ÇÏ¸é °ÔÀÓÀÌ ¿Ï¼ºµÇ´Â °ÍÀÌ´Ù. ±×·¸´Ù¸é ½ÇÁ¦ °í½ºÅé °ÔÀÓÆÇÀÌ ¾î¶»°Ô »ý°å´ÂÁö »ý°¢ÇØ º¸ÀÚ. Ãß»óȸ¦ ÇÒ ¶§´Â »ç¹°ÀÇ Æ¯¼ºÀ» Àß »ó»óÇØ ºÁµµ µÇÁö¸¸ ±×º¸´Ù´Â ½ÇÁ¦ »ç¹°À» Á÷Á¢ º¸°í ¸¸Áö¸é¼ °¡Áö°í ³î¾Æ ºÁ¾ß ÇÑ´Ù.
ÀÌ »çÁø¼Ó¿¡ µîÀåÇÏ´Â ¸ðµç ¹°Ã¼µéÀÌ ÇÁ·Î±×·¥¿¡¼´Â ´Ù °´Ã¼°¡ µÈ´Ù. ½ÇÁ¦ ÈÅõÆÇÀ̶ó¸é ¿©±â¿¡ Àç¶³ÀÌ, ¸ÆÁÖ, À½·á¼ö µîµµ ÇÊ¿äÇϰÚÁö¸¸ °ÔÀÓ°ú´Â Á÷Á¢ÀûÀÎ »ó°üÀÌ ¾øÀ¸¹Ç·Î Á¦¿ÜÇϵµ·Ï ÇÏÀÚ. ¿©´ãÀÌÁö¸¸ »õº®¿¡ È¥ÀÚ¼ ÀÌ »çÁøÀ» Âï´Ù°¡ ¾Æ³»¿¡°Ô µéÄÑ µµ´ëü ¹¹ÇÏ´Â ÁþÀ̳İí ÇÉÀÜÀ» µé¾ú¾ú´Âµ¥ ¾îÁö°£È÷µµ Ȳ´çÇßÀ» °ÍÀÌ´Ù.
ÀÌ ¿¹Á¦´Â ÁÙ ¼ö°¡ 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Àº °í½ºÅéÀÇ Ä«µåµéÀ» °ü¸®ÇÏ´Â °¡Àå ±âº»ÀûÀÎ µ¿ÀÛÀ» Á¤ÀÇÇϴµ¥ °ÔÀÓ ±ÔÄ¢ÀÌ Ãß°¡µÇ¾î ´õ º¹ÀâÇÑ °ü¸®°¡ ÇÊ¿äÇÏ´Ù¸é ÀÌ Å¬·¡½º¸¦ È®ÀåÇÏ¸é µÈ´Ù. Àΰ£ ¼¼»ó°ú ¸¶Âù°¡Áö·Î ºÎ¸ð Ŭ·¡½º°¡ ¸¹Àº µ¿ÀÛÀ» Á¤ÀÇÇϸé ÀڽĵéÀÌ ÆíÇØÁø´Ù.