안녕하세요
코드 문의합니다.
일단 질문에서 원하는 값은 제대로 나옵니다.
그럼에도 계속 통과가 안 되는 이유가 뭐죠?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100];
int length, cmp;
scanf("%d %s", &cmp, s1);
length = strlen(s1);
switch (cmp)
{
case 2:
goto n2;
case 3:
goto n3;
case 4:
goto n4;
}
// n2
n2:
if (cmp < 2)
{
printf("wrong\n");
return 0;
}
for (int i = 0; i < length - 1; i++)
{
printf("%c%c\n", s1[i], s1[i + 1]);
}
goto end;
// n3
n3:
if (cmp < 3)
{
printf("wrong\n");
return 0;
}
for (int i = 0; i < length - 2; i++)
{
printf("%c%c%c\n", s1[i], s1[i + 1], s1[i + 2]);
}
goto end;
// n4
n4:
if (cmp < 4)
{
printf("wrong\n");
return 0;
}
for (int i = 0; i < length - 3; i++)
{
printf("%c%c%c%c\n", s1[i], s1[i + 1], s1[i + 2], s1[i + 3]);
}
end:
return 0;
}
임의의 길이를 정수로 입력했을 때 동작해야 합니다. N-gram을 만드는 문제이지, 4-gram을 만드는 문제가 아닙니다.
입력되는 정수 N은 10일 수도, 20일 수도 있습니다.