ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¼Ò°³
°Ë»ö¿£Áø¿¡¼ "A B C"ÀÇ 3°³ÀÇ TermÀ¸·Î °Ë»öÀ» Çϸé, °Ë»ö°á°ú¿Í ÇÔ²² ¹®¼ÀÇ ¿ä¾àÀ» ÇÔ²² Ãâ·ÂÇÑ´Ù. ÀÌ ¹®¼ÀÇ ¿ä¾àÀº °Ë»ö¾î¿¡ ´ëÇÑ highlitingÀ» Àû¿ëÇÑ´Ù. ÀÌ ¿ä¾à¹®Àº ´ÙÀ½°ú °°Àº Á¶°ÇÀ» °¡Á®¾ß ÇÒ °ÍÀÌ´Ù.
¹®Á¦
´ÙÀ½ÀÇ ¹®ÀÚ¿¿¡¼ "A B C"°¡ °¡Àå °¡±î¿î °Å¸®¿¡¼ ÃâÇöÇÏ´Â ÁöÁ¡À» ã¾Æ¶ó. AxxxxxxxxxxxxxxxxxxxxAxxxxxxxxBxxxxxxxxCxxxxCxxxxAxxBxxxxAxCxB
56, 60 Áö¿ª¿¡¼ ¹ß»ý. °Å¸®´Â 4 ¹®Á¦ Ç®ÀÌyundreamÀÇ Ç®ÀÌ
ÃÖÀûÈÇÏÁö ¾ÊÀº ÄÚµåÀÓ. O(n)
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <vector>
using namespace std;
struct term {
int term;
int proxy;
};
int distance(int a, int b, int c, int *amax, int *amin);
int main(int argc, char **argv)
{
char str[]="AxxxxxxxxxxxxxxxxxxxxxxAxxxBxxxxxAxxxxCxxxxxxCxAxxxxBxxxCxxxAxBxCx";
int i = 0;
vector<struct term> post;
vector<struct term>::iterator mi;
int min_dist = 10000;
int dist = 0;
int max, min;
int upper, lower;
struct term termp;
for(i = 0; i < strlen(str); i++)
{
switch(str[i])
{
case 'A':
termp.term = 'A';
termp.proxy = i+1;
post.push_back(termp);
break;
case 'B':
termp.term = 'B';
termp.proxy = i+1;
post.push_back(termp);
break;
case 'C':
termp.term = 'C';
termp.proxy = i+1;
post.push_back(termp);
break;
}
}
printf(" 1 2 3 4 5 6 7 8 9\n");
printf("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n");
printf("%s\n", str);
mi = post.begin();
struct term mask[3];
memset(mask, 0x00, sizeof(term)*3);
while(mi != post.end())
{
mask[mi->term-65] = *mi;
if(mask[0].proxy && mask[1].proxy && mask[2].proxy)
{
dist = distance(mask[0].proxy, mask[1].proxy, mask[2].proxy, &upper, &lower);
if(dist < min_dist)
{
min_dist = dist;
max = upper;
min = lower;
}
}
mi++;
}
printf("%d,%d¿¡ ÀÖ°í °Å¸®´Â %dÀÌ´Ù.\n", min, max, min_dist);
return 1;
}
int distance(int a, int b, int c, int *amax, int *amin)
{
int min=0;
int max=0;
if(a > b)
{
max = a;
min = b;
}
else
{
max = b;
min = a;
}
if(max < c)
{
max = c;
}
if(min > c)
{
min = c;
}
*amax = max;
*amin = min;
return max-min;
}
|
|
||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|