¾Õ ½Ç½À¿¡¼ ºÃ´Ù½ÃÇÇ ÆíÁýÀÌ ÀÏ¾î³ nPos ¿ÀÇÁ¼ÂÀÇ Àü¹æ ÂÊÀº Á¤·Ä ½ÃÀÛÀ§Ä¡¸¸ Á¦´ë·Î ã´Â´Ù¸é ¿ÏÀüÈ÷ Á¤·ÄÀ» »ý·«ÇÏ°í ÀÌÀü Á¤·ÄÁ¤º¸¸¦ »ç¿ëÇصµ ÀüÇô ¹®Á¦µÉ °ÍÀÌ ¾ø¾ú´Ù. ±×·¯³ª ÈĹæ ÂÊÀ¸·Î´Â Á» ´Ù¸£´Ù. ±ÛÀÚ°¡ »ðÀÔ, »èÁ¦µÇ¾ú´Ù¸é ±× µÚÂÊÀÇ ¹®¼´Â Ç×»ó º¯È°¡ ÀÖÀ» ¼ö ¹Û¿¡ ¾øÀ¸¹Ç·Î Á¤·ÄÀ» »ý·«ÇÒ ¼ö ¾ø´Ù. ±×·¯³ª ÈĹæÀÇ º¯È´Â Ç×»ó ÀÏÁ¤ÇÑ ±ÔÄ¢¿¡ µû¶ó ÀϾ±â ¶§¹®¿¡ ±ÔÄ¢¸¸ Á¤È®ÇÏ°Ô Ã£À¸¸é ÈĹæ Á¤·Äµµ ¸¹ÀÌ °£¼ÒÈÇÒ ¼ö ÀÖ´Ù.
ÈĹæ Á¤·ÄÀÇ º¯È ±ÔÄ¢À» ÆľÇÇÏ´Â °ÍÀº ±×´ÙÁö ½±Áö ¾ÊÀºµ¥ ¸î °¡Áö ÄÉÀ̽º·Î ³ª´©¾î °¢ ÄÉÀ̽ºº°·Î ¾î¶² ½ÄÀ¸·Î ÀÌÀüÀÇ Á¤·ÄÁ¤º¸¸¦ ÀçÈ°¿ëÇÒ ¼ö ÀÖ´ÂÁö ¹æ¾ÈÀ» ¸ð»öÇغ¸µµ·Ï ÇÏÀÚ. ±ÔÄ¢ÀÌ ³ª¸§´ë·Î º¹ÀâÇϱ⠶§¹®¿¡ ±Û¸¸ ÀÐ¾î¼ ÀÌÇØÇϱâ´Â ¹«Ã´ ¾î·Æ´Ù. Á÷Á¢ ¿¬½ÀÀå¿¡ ±×·Á °¡¸é¼ ³»°¡ ÀÌ Äڵ带 ÀÛ¼ºÇÑ´Ù¸é ¾î¶² ½ÄÀ¸·Î ±ÔÄ¢À» ¹ß°ßÇÒ ¼ö ÀÖ´ÂÁö ¸ÕÀú »ý°¢Çغ¸µµ·Ï ÇÏÀÚ.
°¡Àå ´Ü¼øÇÑ °æ¿ì·Î ÁÙ ³»¿¡¼ »ðÀÔ, »èÁ¦°¡ ÀϾ ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ µ¿ÀÏÇÑ ÁöÁ¡¿¡¼ À¯»çÇÑ ÆÐÅÏÀ» ãÀº °æ¿ìÀÌ´Ù. ¿©±â¼ À¯»ç ÆÐÅÏÀ̶ó´Â ¿ë¾î´Â ±¸Ã¼ÀûÀ¸·Î ÀçÈ°¿ëÀÌ °¡´ÉÇÑ Á¤·ÄÁ¤º¸¸¦ ÀǹÌÇÑ´Ù. À¯»ç ÆÐÅÏÀ» ã±â¸¸ Çϸé Á¤·ÄÀ» ´Ù½Ã ÇÒ ÇÊ¿ä¾øÀÌ ±âÁ¸ÀÇ Á¤·ÄÁ¤º¸¸¦ ¾à°£¸¸ º¯°æÇÏ¸é µÈ´Ù.
ù ÁÙÀÇ Áß°£Âë¿¡¼ 1¹ÙÀÌÆ®ÀÇ ¹®ÀÚ¸¦ »ðÀÔ(¶Ç´Â »èÁ¦)Çߴµ¥ ÀÌ ÆíÁýÀ¸·Î ÀÎÇØ Ã¹ ÁÙÀº ±æÀ̸¸ º¯°æµÇ¾úÀ¸¸ç Àüü ÁÙ ¼ö¿¡´Â º¯È°¡ ¾ø´Ù°í ÇÏÀÚ. »ðÀÔ ÈÄ¿¡ ù ÁÙºÎÅÍ Á¤·ÄÀ» ´Ù½Ã ÇØ ¿À´Âµ¥ µÎ ¹ø° ÁÙÀ» Á¤·ÄÇÑ ÈÄ ÀÌÀü Á¤·Ä °á°ú¿Í ºñ±³¸¦ Çغ¸´Ï 1¹ÙÀÌÆ®¸¸Å¾¿¸¸ Â÷ÀÌ°¡ ÀÖ°í ³ª¸ÓÁö´Â º¯È°¡ ¾ø´Ù. Áï À¯»çÇÑ ÆÐÅÏÀ» ãÀº °ÍÀÌ´Ù. ÀÏ´Ü ÆÐÅÏÀ» ã¾ÒÀ¸¸é ÀÌÈÄ ¼¼ ¹ø° ÁÙºÎÅÍ´Â ÀÏÀÏÀÌ ´Ù½Ã Á¤·ÄÇÒ ÇÊ¿ä¾øÀÌ Start¿Í End¸¦ 1¾¿ Áõ°¡½ÃÄÑ Áֱ⸸ ÇÏ¸é µÈ´Ù.
¾ÆÁÖ ±¸Ã¼ÀûÀÎ ¿¹¸¦ µé¾î ÀÌ Á¤·Ä¹æ½Ä¿¡ ´ëÇØ ¼³¸íÇغ¸µµ·Ï ÇÏÀÚ. ´ÙÀ½ ±×¸²ÀÇ ¿ÞÂÊ ¹®¼´Â ¸ðµÎ ´Ù¼¸ ÁÙ·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç °¢ ÁÙÀº ¸ðµÎ °³ÇàÄÚµå·Î °³ÇàµÇ¾î ÀÖ´Ù°í ÇÏÀÚ. ÀÌ »óÅ¿¡¼ µÎ ¹ø° ÁÙ Áß°£¿¡ ¡®Z¡¯¹®ÀÚ¸¦ »ðÀÔÇÑ ÈÄÀÇ Á¤·Ä °úÁ¤À» »ó»óÇغ¸ÀÚ.
Àü¹æ Á¤·Ä »ý·« ±â´É¿¡ ÀÇÇØ Ã¹ ¹ø° ÁÙÀº ÀçÁ¤·ÄµÇÁö ¾Ê°í µÎ ¹ø° ÁÙºÎÅÍ Á¤·ÄÀÌ ½ÃÀ۵ȴÙ. µÎ ¹ø° ÁÙÀ» Á¤·ÄÇØ º» °á°ú Start´Â ±×´ë·ÎÀε¥ »ðÀÔµÈ Z¿¡ ÀÇÇØ End´Â 1 Áõ°¡ÇÏ¿© 10¿¡¼ 11ÀÌ µÇ¾ú´Ù. ¼¼ ¹ø° ÁÙÀ» Á¤·ÄÇغ¸´Ï Start´Â 13ÀÌ µÇ¾ú°í End´Â 16ÀÌ µÇ´Âµ¥ ÀÌ °á°ú´Â ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ °°Àº ÁÙ¿¡¼ 1¸¸Å ´õÇÑ °ªÀÌ´Ù. Áï ¼¼ ¹ø° ÁÙ ÀÌÈÄ´Â ¡®Z¡¯ÀÇ »ðÀÔ¿¡ ÀÇÇØ ¿ÀÇÁ¼Â¸¸ µÚ·Î À̵¿µÉ »Ó ÁÙÀÇ ±æÀÌ¿¡´Â º¯È°¡ ¾øÀ¸¸ç ³× ¹ø° ÀÌÈĵµ ¸¶Âù°¡Áö´Ù. ¿©±â¼ ¼¼ ¹ø° ÁÙ ÀÌÈÄ ¿ÀÇÁ¼ÂÀÇ Áõ°¡ºÐÀº »ðÀÔµÈ ¹®ÀÚ¿ÀÇ ±æÀÌ¿Í °°´Ù´Â ±ÔÄ¢À» ¹ß°ßÇß´Ù.
ÀÌ »ç½ÇÀ» È®ÀÎÇß´Ù¸é ³× ¹ø° ÁÙºÎÅÍ´Â ±»ÀÌ GetLine ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Á¤·ÄÀ» ´Ù½Ã ÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸ç Start, End¸¸ 1¾¿ Áõ°¡½ÃÅ°¸é µÈ´Ù. Á» ´õ ÀϹÝÀûÀ¸·Î Á¤¸®ÇÑ´Ù¸é nCount°¡ »ðÀԵǾúÀ» ¶§(»èÁ¦½Ã´Â À½¼ö°ª) ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ °°Àº ÁÙ°ú ºñ±³ÇÏ¿© nCount¸¸Å ¿ÀÇÁ¼ÂÀÌ À̵¿µÈ ÁÙÀ» ãÀ¸¸é ±× ÀÌÈÄ ÁÙÀº °°Àº ¹æ½ÄÀ¸·Î ¿ÀÇÁ¼Â¸¸ Á¶Á¤ÇÏ¸é µÈ´Ù´Â °ÍÀÌ´Ù. ¹®¼°¡ ¾Æ¹«¸® ±æ¾îµµ µÚÂÊ ÁÙÀº ¸ðµÎ ¿ÀÇÁ¼Â¸¸ ÀÏ°ý Á¶Á¤ÇÏ¸é µÈ´Ù.
ÀÌ °æ¿ì´Â ¹®ÀÚÀÇ »ðÀÔ¿¡ ÀÇÇØ ÁÙ ±æÀÌ°¡ ´Ã¾î³ª ´ÙÀ½ ÁÙ·Î ³»·Á°£ °æ¿ìÀÌ´Ù. ÀÌ·¸°Ô µÇ¸é µÎ ¹ø° ÁÙ ÀÌÈÄ°¡ ÇÑ ÁÙ¾¿ µÚ·Î ¹Ð¸®¸ç ÀÌÈÄÀÇ ¸ðµç ÁÙ¿¡¼ ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ °°Àº ÁÙ°ú À¯»çÇÑ ÆÐÅÏÀÌ ¹ß°ßµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.
±×·¯³ª ÀÚ¼¼È÷ º¸¸é ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ ¹Ù·Î ¾Õ ÁÙ°ú À¯»çÇÑ ÆÐÅÏÀÌ ¹ß°ßµÇ¸ç ÀÌ Á¤º¸¸¦ ÀçÈ°¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ ¾Õ ÁÙÀ» ÂüÁ¶ÇÏ¿© »ðÀÔµÈ ±æÀ̸¸Å ¿ÀÇÁ¼ÂÀ» À̵¿½ÃÅ°¸é ÀçÁ¤·ÄÇÏÁö ¾Ê¾Æµµ µÈ´Ù.
ÄÉÀ̽º 2ÀÇ ¹Ý´ë °æ¿ì·Î ÇÑ ¹®ÀÚ¸¦ »èÁ¦Çߴµ¥ ÁÙ ±æÀÌ°¡ ª¾ÆÁ³´Ù. Áï ù ¹ø° ÁÙ°ú µÎ ¹ø° ÁÙÀÌ ÇÕÃÄÁüÀ¸·Î½á ¼¼ ¹ø° ÁÙ ÀÌÈÄ°¡ ¸ðµÎ ¾ÕÀ¸·Î À̵¿ÇÏ¿´´Ù.
À̶§´Â ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ ¹Ù·Î ´ÙÀ½ ÁÙ°ú À¯»çÇÑ ÆÐÅÏÀÌ ¹ß°ßµÇ´Âµ¥ ÀÌ Á¤º¸µµ ¿ª½Ã ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¼¼ °¡Áö ÄÉÀ̽º ¸ðµÎ À¯»çÇÑ ÆÐÅÏÀ» ã¾Æ »ðÀÔ »èÁ¦µÈ ¿ÀÇÁ¼Â¸¸Å Start¿Í End¸¦ Á¶Á¤ÇÏ¸é µÈ´Ù. ¾î¶² °æ¿ìµµ nPara¿Í nLineÀº º¯ÇÏÁö ¾Ê´Â´Ù.
»ðÀÔ, »èÁ¦µÈ ¹®ÀÚ¿¿¡ °³ÇàÄڵ尡 ÀÖ´Â °æ¿ì´Â ¹®´ÜÀÌ °Á¦·Î ³ª´©¾îÁö±â ¶§¹®¿¡ ¹®Á¦°¡ ´Ù¸£´Ù. ±×·¯³ª ¸é¹ÐÇÏ°Ô °üÂûÇغ¸¸é °³ÇàÄڵ尡 »ðÀÔ, »èÁ¦µÇ¾ú´Ù°í ÇÏ´õ¶óµµ ¿©ÀüÈ÷ ¾ÕÀÇ ¼¼ ÄÉÀ̽º Áß Çϳª¿¡ ´ëÀÀµÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¿Ö³ÄÇÏ¸é °³ÇàÄÚµå Çϳª¸¦ »ðÀÔ, »èÁ¦ÇÒ ¶§ ÇѲ¨¹ø¿¡ µÎ ÁÙ ÀÌ»óÀÌ ´Ã¾î³ª°Å³ª ÁÙ¾îµéÁö´Â ¾Ê±â ¶§¹®ÀÌ´Ù. ´ÙÀ½ ±×¸²À» º¸ÀÚ.
ÄÉÀ̽º¸¦ ³ª´©´Â ±âÁØÀº ÆíÁý ÈÄ À¯»çÇÑ ÆÐÅÏÀÌ ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ ¾îµðÂë¿¡¼ ¹ß°ßµÇ¾ú´Â°¡ ÇÏ´Â Á¡ÀÌ´Ù. °³ÇàÄڵ尡 ÆíÁýµÈ °æ¿ì´Â ¹®´ÜÀÇ ¹øÈ£¿¡µµ º¯È°¡ »ý±â¹Ç·Î nParaµµ ÀûÀýÈ÷ Á¶Á¤ÇØ¾ß ÇÑ´Ù. Á¶Á¤ÇÏ´Â ¹æ¹ýÀº °¢ ÄÉÀ̽ºº°·Î ´Ù¸£´Ù. nLineÀº ¾î¶² °æ¿ì¶óµµ º¯°æµÇÁö ¾ÊÀ¸¹Ç·Î ±×´ë·Î µÎ°Å³ª ´Ü¼ø º¹»çÇÏ¸é µÈ´Ù.
±×·³ ÀÌÁ¦ ¾Õ¿¡¼ ¿¬±¸Çغ» ´ë·Î ½ÇÁ¦ ÄÚµå·Î ÀÛ¼ºÇغ¸ÀÚ. ÄÉÀ̽º¸¦ ÆǺ°ÇÏ´Â Á¶°ÇÀÌ ´Ù¼Ò º¹ÀâÇÏ°í ¹ß°ß ÈÄ Á¤·ÄÁ¤º¸¸¦ °¡°øÇÏ´Â Äڵ尡 ±æ±â ¶§¹®¿¡ º¸´Ù½ÃÇÇ ±²ÀåÈ÷ ±æ¾îÁ³°í º¹ÀâÇØÁ³´Ù.
void UpdateLineInfo(int nPos/*=-1*/, int nCount/*=-1*/)
{
int l,s,e;
int nPara, nLine=0;
int i;
int ParaStart;
int ps=-1,pe=-1,pp=0;
int dPara;
if (nPos==-1) {
l=0;
nPara=0;
} else {
ParaStart=FindParaStart(nPos);
if (ParaStart == 0) {
l=0;
nPara=0;
} else {
GetRCFromOff(ParaStart-2,l,e);
nPara=pLine[l].nPara+1;
l++;
}
}
for (;;l++) {
if (l >= Linelen) {
Linelen += 1000;
pLine=(tagLine *)realloc(pLine,sizeof(tagLine)*Linelen);
if (pLine == NULL) {
}
for (i=Linelen-1000;i<Linelen;i++) {
pLine[i].Start=-1;
}
}
GetLine(l,s,e);
if (nPos != -1 && e > nPos && pLine[l].Start != -1) {
if (pLine[l].Start+nCount == s && pLine[l].End+nCount == e) {
dPara=nPara-pLine[l].nPara;
for (i=l;;i++) {
if (pLine[i].Start==-1)
break;
pLine[i].Start+=nCount;
pLine[i].End+=nCount;
pLine[i].nPara+=dPara;
}
break;
}
if (ps+nCount == s && pe+nCount == e) {
if (TotalLine+1 >= Linelen) {
Linelen += 1000;
pLine=(tagLine *)realloc(pLine,sizeof(tagLine)*Linelen);
if (pLine == NULL) {
}
for (i=Linelen-1000;i<Linelen;i++) {
pLine[i].Start=-1;
}
}
dPara=nPara-pp;
pLine[TotalLine+1].Start=-1;
for (i=TotalLine;i>=l;i--) {
pLine[i].Start=pLine[i-1].Start+nCount;
pLine[i].End=pLine[i-1].End+nCount;
pLine[i].nPara=pLine[i-1].nPara+dPara;
pLine[i].nLine=pLine[i-1].nLine;
}
pLine[l].Start=s;
pLine[l].End=e;
pLine[l].nPara=nPara;
pLine[l].nLine=nLine;
TotalLine++;
break;
}
if (pLine[l+1].Start+nCount == s && pLine[l+1].End+nCount == e) {
dPara=nPara-pLine[l+1].nPara;
for (i=l;;i++) {
if (pLine[i+1].Start==-1) {
pLine[i].Start=-1;
break;
}
pLine[i].Start=pLine[i+1].Start+nCount;
pLine[i].End=pLine[i+1].End+nCount;
pLine[i].nPara=pLine[i+1].nPara+dPara;
pLine[i].nLine=pLine[i+1].nLine;
}
TotalLine--;
break;
}
}
ps=pLine[l].Start;
pe=pLine[l].End;
pp=pLine[l].nPara;
pLine[l].Start=s;
pLine[l].End=e;
pLine[l].nPara=nPara;
pLine[l].nLine=nLine;
if (s==-1) {
TotalLine=l;
if (MarginWidth != 0) {
if (nPara >= 9999 && MarginWidth==25) {
MarginWidth=32;
SendMessage(hWndMain,WM_SIZE,0,0);
Invalidate(-1);
}
if (nPara < 9999 && MarginWidth==32) {
MarginWidth=25;
SendMessage(hWndMain,WM_SIZE,0,0);
Invalidate(-1);
}
}
break;
}
if (buf[e]==¡®\r¡¯) {
nPara++;
nLine=0;
} else {
nLine++;
}
}
}
¸î °¡Áö º¯¼ö°¡ Ãß°¡µÇ¾ú°í GetLine È£Ãâ ÈÄ ¼¼ °¡Áö ÄÉÀ̽º¿¡ ÇØ´çÇÏ´ÂÁö Á¡°ËÇÑ ÈÄ Á¤·Ä ´ë½Å ¹öÆÛ¸¦ Á¶ÀÛÇÏ´Â Äڵ尡 ÀÖ´Ù. GetLine ¹Ù·Î ´ÙÀ½¿¡ ÀÖ´Â if¹®Àº ÈĹæ Á¤·Ä °£¼Òȸ¦ ÇÒ °ÍÀΰ¡¸¦ ÆÇ´ÜÇϴµ¥ ÀÏ´Ü nPos°¡ -1À̸é Àüü Á¤·ÄÀ» ÇÏ´Â °ÍÀ̹ǷΠÁ¶°ÇµéÀ» »ìÆ캼 ÇÊ¿ä°¡ ¾ø´Ù. ±×¸®°í Á¤·Ä ½ÃÀÛ ÁÙÀÇ ³¡ÀÌ Á¤·Ä ½ÃÀÛ ¿ÀÇÁ¼ÂÀÎ nPosº¸´Ù Ŭ ¶§¸¸ °£¼Òȸ¦ Çϴµ¥ ´ÙÀ½°ú °°Àº °æ¿ì¸¦ ¿¹¹æÇϱâ À§ÇؼÀÌ´Ù.
¹®´ÜÀÇ ¼¼ ¹ø° ÁÙÀÌ ÆíÁýµÇ¾ú´Âµ¥ À̶§ Á¤·Ä ½ÃÀÛÀ§Ä¡´Â ¹®´ÜÀÇ Ã¹ ÁÙºÎÅÍ°¡ µÈ´Ù. ù ÁÙÀº ÆíÁýÀÌ ÀÏ¾î³ À§Ä¡º¸´Ù ÀÌÀü¿¡ ÀÖ´Â ÁÙÀ̹ǷΠÀÌ ÁÙÀ» Á¤·ÄÇÒ ¶§´Â ¾ÆÁ÷ ÈĹæ Á¤·Ä °£¼Òȸ¦ ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ÃÖ¼ÒÇÑ ÆíÁýÀÌ ÀÏ¾î³ ÁÙ ÀÌÈĺÎÅÍ Á¶°ÇÀ» Á¡°ËÇØ º¼ ÇÊ¿ä°¡ ÀÖ´Â °ÍÀÌ´Ù. ¶ÇÇÑ Á¤·Ä ·çÇÁ´Â GetLine¿¡ ÀÇÇØ Á¶»çµÈ s°¡ -1ÀÏ ¶§, Áï ¸ðµç ÁÙÀ» ´Ù Á¤·ÄÇÒ ¶§±îÁö ¹Ýº¹µÇ´Âµ¥ ³¡ÁÙÀÎ °æ¿ì´Â ´õ ÀÌ»ó Á¶°Ç Á¡°ËÀ» ÇÒ ÇÊ¿ä°¡ ¾øÀ» »Ó¸¸ ¾Æ´Ï¶ó s ¿Í e°¡ ½ÇÁ¦ ¿ÀÇÁ¼ÂÀÌ ¾Æ´Ñ -1°ªÀ» °¡Áö¹Ç·Î Á¶°Ç¹®µéÀÌ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â ¹®Á¦°¡ ÀÖ´Ù. e>nPos Á¶°Ç¹®Àº e°¡ -1ÀÏ ¶§´Â Á¶°Ç Á¡°ËÀ» ÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.
ÈĹæ Á¤·Ä °£¼ÒÈÀÇ ¸¶Áö¸· Á¶°ÇÀÎ pLine[l].Start != -1Àº »õ·Î ÇÒ´çµÈ ÁÙ¿¡ ´ëÇØ °£¼Òȸ¦ ¹æÁöÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. realloc¿¡ ÀÇÇØ »õ·Î ÇÒ´çµÈ ÁÙÀº ¾ÆÁ÷ Á¤·ÄÀÌ µÇÁö ¾ÊÀº »óÅÂÀ̹ǷΠÀÌÀü Á¤º¸¿Í ºñ±³ÇÑ´Ù´Â °ÍÀÌ Àǹ̰¡ ¾ø´Ù. ¸¸¾à pLineÀ» ÀçÇÒ´çÇÒ ¶§ Start¸¦ -1·Î ÃʱâÈÇÏÁö ¾ÊÀ¸¸é ¸±¸®Áî ¹öÀüÀÇ °æ¿ì Start´Â 0À¸·Î ÃʱâȵȴÙ. ÀÌ »óÅ¿¡¼ ±ä ÅؽºÆ®¸¦ ºÙ¿©³Ö°Å³ª ÆÄÀÏ¿¡¼ Àоî¿À°Ô µÇ¸é ÁÙ ³¡¿¡¼ ÄÉÀ̽º1ÀÇ Á¶°ÇÀÌ ¿ì¿¬È÷ ¸¸Á·µÇ´Âµ¥ À̶§ ¹®¼ ³¡À» ãÀ» ¶§±îÁö ÁÙ Á¤º¸ º¹»ç¸¦ ½ÃµµÇÏ°Ô µÈ´Ù. Start°¡ -1·Î ÃʱâȵÇÁö ¾ÊÀº »óÅ¿¡¼´Â ¹è¿¹üÀ§¸¦ ³Ñ¾î¼°Ô µÇ°í °á±¹ ÇÁ·Î±×·¥ÀÌ ´Ù¿îµÇ´Â Ä¡¸íÀûÀÎ ¹®Á¦°¡ µÈ´Ù.
»ó±â ¼¼ Á¶°ÇÀÌ ¸¸Á·µÇ¸é ÇÑ ÁÙÀ» Á¤·ÄÇÑ °á°ú¿Í ÀÌÀü Á¤·ÄÁ¤º¸¸¦ ºñ±³ÇØ º»´Ù. ºñ±³ÇÏ´Â ¹æ½Ä°ú Á¤·ÄÁ¤º¸¸¦ º¹»çÇÏ´Â ¹æ½ÄÀº ÄÉÀ̽ºº°·Î ´Ù¸£´Ù. ¾Õ¿¡¼ ¼³¸íÇÑ ¼¼ °¡Áö ÄÉÀ̽º°¡ ¼ø¼´ë·Î if ºí·ÏÀ¸·Î ÀÛ¼ºµÇ¾î Àִµ¥ ¼ø¼´ë·Î º¸µµ·Ï ÇÏÀÚ.
ÄÉÀ̽º 1ÀÇ °æ¿ìÀε¥ ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ °°Àº ÁÙ¿¡¼ À¯»çÇÑ ÆÐÅÏÀ» ã¾Ò´Ù. ÀÌ Á¶°ÇÀ» ÆǺ°ÇÏ´Â if¹®¿¡¼ pLine ¹è¿Àº ÀÌÀü Á¤·ÄÁ¤º¸ÀÌ°í »õ·Î Á¶»çÇÑ s, e´Â »õ Á¤·ÄÁ¤º¸Àε¥ ÀÌ µÎ °ªÀÌ nCount¸¸Å Â÷ÀÌ°¡ ÀÖ´ÂÁö ºñ±³Çغ¸¾Ò´Ù. ¹®¼ÀÇ Àüü ÁÙ ¼ö´Â º¯È°¡ ¾øÀ¸¸ç ÀÌ ÁÙ ÀÌÈÄÀÇ ¸ðµç Á¤·ÄÁ¤º¸´Â nCount¸¸Å ¿ÀÇÁ¼ÂÀ» À̵¿½ÃÄÑ¾ß ÇÑ´Ù. nLineÀº º¯È°¡ ¾øÀ¸¸ç nPara´Â Áö±Ý Á¤·Ä »óÅÂÀÇ nPara¿Í ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ nParaÀÇ Â÷ÀÎ dPara¸¸Å ´õÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î ÀÌÀü Á¤·Ä »óÅ¿¡¼´Â 5¹ø ¹®´ÜÀ̾ú´Âµ¥ ´Ù½Ã Á¤·ÄÇØ º» °á°ú nPara°¡ 6À̶ó¸é ÀÌÈÄ ¸ðµç ¹®´ÜÀÇ ¹øÈ£´Â 1¾¿ Áõ°¡ÇØ¾ß ÇÑ´Ù.
pLine ¹è¿ÀÇ µ¿ÀÏÇÑ Ã·ÀÚ³¢¸® ¿ÀÇÁ¼Â À̵¿¸¸À¸·Î ÀçÁ¤·ÄÀ» ÇÒ ¼ö ÀÖ´Â °¡Àå ´Ü¼øÇÑ ÇüÅÂÀÌ´Ù. ÇÑ ÁÙ ³»¿¡¼¸¸ ÆíÁýµÇ´Â °æ¿ìÀÌ¸ç ¹ß»ý ºóµµµµ °¡Àå ³ô°í 󸮵µ ´Ü¼øÇÏ¿© ÀÌ Ã³¸®¸¸ Çصµ Á¤·Ä ¼Óµµ°¡ ±²ÀåÈ÷ »¡¶óÁø´Ù.
ÄÉÀ̽º 2ÀÇ °æ¿ìÀ̸ç ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ ¾Õ ÁÙ¿¡¼ À¯»çÇÑ ÆÐÅÏÀ» ã¾Ò´Ù. ±×·±µ¥ ÀÌ Á¶°Ç ºñ±³´Â ±×´ÙÁö ½±Áö°¡ ¾Ê´Ù. ¿Ö³ÄÇϸé pLine ¹è¿Àº Çϳª¹Û¿¡ ¾ø°í »õ·Î¿î Á¤·ÄÁ¤º¸¸¦ ¸¸µå´Â Áß¿¡ ¾Õ ÁÙÀÇ Á¤·ÄÁ¤º¸°¡ Æı«µÇ¾î ¹ö·È±â ¶§¹®ÀÌ´Ù. ±×·¡¼ ¾Õ ÁÙ°ú ºñ±³¸¦ Çϱâ À§ÇØ ps, pe, pp Àӽà º¯¼ö°¡ ÇÊ¿äÇÏ´Ù. ÇÑ ÁÙÀ» Á¤·ÄÇÒ ¶§¸¶´Ù ÀÌ º¯¼ö¿¡ Á¤·Ä »óŸ¦ º°µµ·Î ¹é¾÷ÇØµÎ¸é ´ÙÀ½ ÁÙÀ» Á¤·ÄÇÒ ¶§ ÀÌ º¯¼ö°ªÀÌ °ð ÀÌÀü ÁÙÀÇ Á¤·ÄÁ¤º¸°¡ µÈ´Ù. Áï ´ÙÀ½ ÁÙ Á¤·Ä½Ã À¯»ç ÆÐÅÏÀ» ã±â À§ÇÑ ºñ±³ ´ë»óÀÌ´Ù.
ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ ¾Õ ÁÙÀÌ ÇöÀç ÁÙ°ú À¯»ç ÆÐÅÏÀ̶ó´Â °ÍÀº Áö±Ý Á¤·ÄÇÑ °á°ú Áß°£¿¡ ÇÑ ÁÙÀÌ »ðÀԵǾú´Ù´Â ¶æÀÌ´Ù. µû¶ó¼ ÀÌÈÄÀÇ ¸ðµç Á¤·ÄÁ¤º¸´Â pLine ¹è¿ÀÇ ÇÑ Ä ¾Æ·¡·Î º¹»çµÇ¾î¾ß ÇÑ´Ù. À̶§ º¹»çÀÇ ¹æÇâÀº À§¿¡¼ ¾Æ·¡·Î°¡ ¾Æ´Ï¶ó ¾Æ·¡¿¡¼ À§·Î¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î lÀÌ 10À̾ú´Ù°í ÇÏÀÚ. ±×·¯¸é 10ÁÙ Á¤º¸¸¦ 11¿¡ ¾²°í 11ÁÙ Á¤º¸¸¦ 12¿¡ ¾²°í ÀÌ·± ½ÄÀ¸·Î º¹»çÇÒ ¼ö ¾ø´Ù. 10ÁÙ Á¤º¸¸¦ 11¿¡ ¾²´Â ¼ø°£ 11ÀÇ Á¤º¸´Â 10ÁÙ°ú °°¾ÆÁö¹Ç·Î 12°¡ ´ëÀÔ¹Þ´Â Á¤º¸´Â ÀÌ¹Ì Æı«µÈ °ÍÀÌ´Ù.
±×·¡¼ ¹®¼ÀÇ ³¡¿¡¼ºÎÅÍ l±îÁö Á¤·ÄÁ¤º¸¸¦ °Å²Ù·Î º¹»çÇØ ¿Â´Ù. ¸¶Áö¸·À¸·Î l¹ø° ÁÙÀº º¹»çÇÒ ÇÊ¿ä¾øÀÌ ¹æ±Ý GetLine ÇÔ¼ö°¡ Á¤·ÄÇÑ °á°ú¸¦ ´ëÀÔ¹ÞÀ¸¸é µÈ´Ù. Áß°£¿¡ ÇÑ ÁÙÀÌ »ðÀԵǾúÀ¸¹Ç·Î TotalLineÀº 1Áõ°¡ÇØ¾ß Çϴµ¥ ÀÌ Á¡ÀÌ ¶Ç ¹®Á¦°¡ µÈ´Ù. pLine ¹è¿ÀÌ ÀÌÀü Á¤·Ä »óÅ¿¡¼ ¹®¼ Å©±â¿Í ²À ¸Â¾Ò´Ù¸é 1Áõ°¡ÇÑ ÇöÀç´Â Çϳª°¡ ¸ðÀÚ¶ó°Ô µÈ´Ù. ±×·¡¼ Á¤·ÄÁ¤º¸ º¹»ç¸¦ ½ÃÀÛÇϱâ Àü¿¡ pLine ¹è¿ÀÇ Å©±â°¡ ÃæºÐÇÑÁö Á¡°ËÇغ¸°í ¸ðÀÚ¶ó¸é ÀçÇÒ´çÇÏ¿© ´Ã·Á ÁÖµµ·Ï ÇÏ¿´´Ù.
ÄÉÀ̽º 3ÀÇ °æ¿ìÀ̸ç ÀÌÀü Á¤·ÄÁ¤º¸ÀÇ µÞÁÙ¿¡¼ À¯»çÇÑ ÆÐÅÏÀ» ã¾Ò´Ù. ÀÌ Á¶°ÇÀº Á¡°ËÇϱⰡ ºñ±³Àû ½±´Ù. Áö±Ý Á¤·ÄÇÑ °á°ú°¡ ÀÌÀü Á¤·ÄÇÑ °á°úÀÇ µÞÁÙ°ú °°´Ù¸é Áß°£¿¡ ÇÑ ÁÙÀÌ »ç¶óÁø °ÍÀÌ´Ù. ±×·¡¼ ÀÌÈÄÀÇ ¸ðµç Á¤·ÄÁ¤º¸´Â pLine ¹è¿ÀÇ ÇÑ Ä À§·Î º¹»çµÇ¾î¾ß ÇÑ´Ù. µÞÁÙÀÇ Á¤·ÄÁ¤º¸´Â ¾ÆÁ÷ pLine ¹è¿¿¡ °í½º¶õÈ÷ ³²¾Æ ÀÖÀ¸¹Ç·Î º¹»çÇϱ⵵ ¾ÆÁÖ ½±´Ù. Á¤·ÄÇÑ °á°ú TotalLineÀº 1 °¨¼ÒÇϴµ¥ ÁÙ ¼ö°¡ ÁÙ¾îµå´Â °ÍÀº ¹®Á¦°¡ µÇÁö ¾ÊÀ¸¹Ç·Î pLine ¹è¿ÀÇ Å©±â´Â °ü¸®ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.
ÀÌÁ¦ ¾Æ¹«¸® Å« ÆÄÀÏÀ» ÆíÁýÇÏ´õ¶óµµ ÀçÁ¤·ÄÇÏ´Â ¹üÀ§°¡ ±â²¯ÇØ¾ß 10ÁÙ ¹Ì¸¸À̱⠶§¹®¿¡ Á¤·Ä¿¡ ½Ã°£À» °ÅÀÇ »¯±âÁö ¾ÊÀ¸¸ç ÆíÁý¼Óµµ´Â ÆÄÀÏ Å©±â¿¡ ¹«°üÇÏ°Ô ÀÏÁ¤ÇÒ °ÍÀÌ´Ù.