문제는 이것입니다


https://www.acmicpc.net/problem/5622


제가 코드를 작성을 한 것이


#include <stdio.h>

#include <string.h>


int main(void)

{

char s[16];

int alph[26]={0,};

int len,cnt=0,i;

alph[0]=3;

alph[1]=3;

alph[2]=3;

alph[3]=4;

alph[4]=4;

alph[5]=4;

alph[6]=5;

alph[7]=5;

alph[8]=5;

alph[9]=6;

alph+=6;

alph[11]=6;

alph[12]=7;

alph[13]=7;

alph[14]=7;

alph[15]=8;

alph[16]=8;

alph[17]=8;

alph[18]=8;

alph[19]=9;

alph[20]=9;

alph[21]=9;

alph[22]=10;

alph[23]=10;

alph[24]=10;

alph[25]=10;

scanf("%s",s);

len=strlen(s);

for(i=0;i<len;i++)

{

cnt+=alph[s[i]-65];

}

printf("%d",cnt);

return 0;

}


이것인데요 처음에 char 배열을 [15]로 해서 틀렸는데 나중에 혹시나 해서 [16]으로 하니까 맞더라고요??


문제에 보면 문자열은 15보다 작거나 같다고 되어있는데 [15]로 해도 어차피 [0]부터 값을 받으니까 15자리 문자열을 넣어도 결국에는 [14] 까지 받고 [15]에 NULL 들어가니까 상관없지 않나요? 왜 [15]는 틀리고 [16]은 맞는지 궁금합니다!!!!!!