
#include <stdio.h>
int main()
{
freopen ("input.txt","r",stdin);
freopen ("output.txt","w",stdout);
int n,i;
char encode[101];
char decode[101];
char decodetable[27]="rhjdxgfoiwauzesktcbpnqlymv";
scanf("%d",&n);
scanf("%s",encode);
for(i=0; i<=n; i++)
{
if (encode[i]=='*') decode[i]=' ';
else
{
decode[i]=decodetable[encode[i]-'a'];
}
}
decode[n+1]='\0';
printf("%s",decode);
return 0;
}
입출력 예시와 동일하게 결과가 나옵니다.
그런데 채점하면 모든 항목에서 no good 이 나옵니다.
단순히 시간초과때문인지... 그렇다면 이것을 어떻게 수정해야 되는 지 알고 싶습니다. _ _))
n은 문자열의 길이고, 배열로 따지면 마지막 문자는 n-1 첨자에 위치합니다. 첫번째 문자가 0첨자 위치에 저장되기 때문이지요...그리고 널은 n첨자 위치에 있을 겁니다. 따라서, 다음과 같이 코딩해야 합니다.
for(i=0; i<=n; i++) => for(i=0; i<n; i++)
decode[n+1]='\0'; => decode[n]='\0';