42-1-³ª.search

´ÙÀ½ ÇÔ¼öµéÀº ¹Ýº¹ÀÚ ±¸°£¿¡¼­ ´Ù¸¥ ±¸°£ Àüü°¡ ¹ß°ßµÇ´Â ÁöÁ¡À» °Ë»öÇÑ´Ù. ¹®ÀÚ¿­¿¡¼­ ºÎºÐ ¹®ÀÚ¿­ÀÇ ÃÖÃÊ À§Ä¡¸¦ °Ë»öÇÏ´Â strstr ÇÔ¼ö¿Í À¯»çÇÑ µ¿ÀÛÀ» Ç쵂 ÀÓÀÇ Å¸ÀÔ¿¡ ´ëÇØ ºÎºÐ °Ë»öÀÌ °¡´ÉÇÏ´Ù´Â Á¡¿¡¼­ ÈξÀ ´õ ÀϹÝÀûÀÌ´Ù.

 

FwdIt1 search(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2 [, BinPred F]);

FwdIt1 find_end(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2 [,BinPred F]);

FwdIt1 search_n (FwdIt1 first1, FwdIt1 last1, Size count, const Type& val[, BinPred F]);

 

first1~last1 Àüü ±¸°£¿¡¼­ first2~last2 ±¸°£°ú ÀÏÄ¡ÇÏ´Â ÆÐÅÏÀ» ã¾Æ ±× ¹Ýº¹ÀÚ¸¦ ¸®ÅÏÇÑ´Ù. search´Â Àüü ±¸°£ÀÇ ¾ÕÂÊ¿¡¼­ºÎÅÍ °Ë»öÀ» Çϰí find_end´Â Àüü ±¸°£ÀÇ µÚÂÊ¿¡¼­ºÎÅÍ °Ë»öÀ» ÇÑ´Ù. µÎ ÇÔ¼ö°¡ °Ë»ö ½ÃÀÛ ¹æÇ⸸ Ʋ¸± »ÓÀÌ´Ù. find_endÀÇ À̸§À» search_end³ª search_reverse·Î Áö¾ú´Ù¸é ÈξÀ ´õ ÀÌÇØÇϱ⠽¬¿üÀ»ÅÙµ¥ ÇÔ¼öÀÇ À̸§ÀÌ ´Ù¼Ò ºÎÀûÀýÇÏ°Ô ºÙ¿©Á® ÀÖ´Ù.

ºÎºÐ °Ë»öÀÌ ³í¸®ÀûÀ¸·Î Àǹ̰¡ ÀÖÀ¸·Á¸é Àüü ±¸°£ÀÌ ºÎºÐ ±¸°£º¸´Ù´Â ´õ ±æ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é °Ë»öÀº Ç×»ó ½ÇÆÐÇÒ °ÍÀÌ´Ù. Àüü ±¸°£À» ³¡±îÁö °Ë»öÇߴµ¥ ºÎºÐ ±¸°£ÀÌ ¹ß°ßµÇÁö ¾ÊÀ¸¸é last1ÀÌ ¸®ÅϵȴÙ. search_nÀº ¹Ýº¹ÀÚ ±¸°£¿¡¼­ val °ªÀÌ count¹ø ¿¬¼ÓÀ¸·Î ³ªÅ¸³ª´Â ÁöÁ¡À» ã´Â´Ù.

 

¿¹ Á¦ : search

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

void main()

{

     int ar1[]={3,1,4,1,5,9,2,6,5,3,5,8,9,9,9,3,2,3,1,5,9,2,6,4,3};

     int ar2[]={1,5,9};

 

     int *p;

     p=search(&ar1[0],&ar1[25],&ar2[0],&ar2[3]);

     if (p!=&ar1[25]) {

          printf("%d¹øÂ°¿¡¼­ ±¸°£ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù.\n",p-ar1);

     }

     p=find_end(&ar1[0],&ar1[25],&ar2[0],&ar2[3]);

     if (p!=&ar1[25]) {

          printf("%d¹øÂ°¿¡¼­ ±¸°£ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù.\n",p-ar1);

     }

     p=search_n(&ar1[0],&ar1[25],3,9);

     if (p!=&ar1[25]) {

          printf("%d¹øÂ°¿¡¼­ 3¿¬¼ÓÀÇ 9¸¦ ¹ß°ßÇß½À´Ï´Ù.\n",p-ar1);

     }

}

 

Á¤¼ö ¹è¿­ ar1¿¡ ÀÏ·ÃÀÇ Á¤¼ö¸¦ ÃʱâÈ­ÇØ ³õ°í ÀÌÁß 1,5,9°¡ ¿¬¼ÓÀ¸·Î ³ªÅ¸³ª´Â ±¸°£ÀÌ ÀÖ´ÂÁö °Ë»öÇØ º¸¾Ò´Ù.

 

3¹øÂ°¿¡¼­ ±¸°£ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù.

18¹øÂ°¿¡¼­ ±¸°£ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù.

12¹øÂ°¿¡¼­ 3¿¬¼ÓÀÇ 9¸¦ ¹ß°ßÇß½À´Ï´Ù.

 

ar1¿¡´Â 1,5,9°¡ µÎ ¹ø ³ªÅ¸³ª´Âµ¥ search´Â ¾ÕÂÊÀÇ 1,5,9 ±¸°£À» ã°í find_end´Â µÚÂÊÀÇ 1,5,9 ±¸°£À» ã´Â´Ù.

¼ø¹æÇâÀ¸·Î °Ë»öÇÑ´Ù¸é search ÇÔ¼ö¸¦ »ç¿ëÇÏ°í ¿ª¹æÇâÀ¸·Î °Ë»öÇÑ´Ù¸é find_end ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. find_end¸¦ ¹®ÀÚ¿­¿¡ ´ëÇØ Àû¿ëÇÏ¸é ¿ª¹æÇâÀ¸·Î ´Ü¾î ã±â¸¦ ¼öÇàÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Âü°í·Î ¿ä¼Ò Çϳª¸¦ ã´Â find ÇÔ¼ö´Â ¿ª¹æÇâ °Ë»ö ÇÔ¼ö°¡ µû·Î Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ±×·¸´Ù°í ÇØ¼­ ¿ª¹æÇâ °Ë»öÀ» ÇÏÁö ¸øÇÏ´Â °ÍÀº ¾Æ´Ï°í ¿ª¹æÇ⠹ݺ¹ÀÚ¸¦ »ç¿ëÇÏ¸é ³¡¿¡¼­ºÎÅÍ ¾ÕÂÊÀ¸·Î °Ë»öÇÒ ¼ö ÀÖ´Ù.

search_nÀº 9°¡ 3¹ø ¿¬¼ÓÀ¸·Î ³ª¿À´Â ±¸°£À» ã´Â´Ù. Á¶°ÇÀÚ¸¦ ÁÖ¸é Æ¯Á¤ Á¶°ÇÀ» ¿¬¼ÓÀûÀ¸·Î ¸¸Á·ÇÏ´Â ±¸°£À» ãÀ» ¼ö Àִµ¥ ¿¹¸¦ µé¾î ¿¬¼ÓÀûÀ¸·Î ¹è¼ö °ü°è¸¦ ¸¸Á·ÇÏ´Â ÀÏ·ÃÀÇ ¿ä¼Ò ±×·ìÀ» ãÀ» ¼ö ÀÖ´Ù.