pepper_mis   4년 전

DEV C++로 돌렸을때 이상없이 돌아갔어요!

근데 자꾸 시간초과가 납니다..

for문을 두번밖에 사용하지 않는데요..

이 이상 시간을 줄일 수가 있나요...?? 

아니면 어디서 잘못된걸까요??

minjoonist   4년 전

strlen()  함수는 O(n)의 시간복잡도로 문자열의 길이가 길수록 비례해서 시간이 느려집니다.

C에서는 문자열을 받을 때 널문자인 '\0'을 저장하므로 이 특징을 살려서 11번째 줄을 이렇게 봐꾸면 시간 초과는 안 남니다.

for(i=0; A[i]!='\0'; i++)

별도로 대문자 변형, 소문자 체크는 각각 헤더파일에 있는 toupper() 과 islower()을 추천드립니다.

if(islower(A[i])) toupper(A[i]);

minjoonist   4년 전

<ctype.h> 헤더파일에 포함되어 있습니다.

댓글을 작성하려면 로그인해야 합니다.