monkeydluppy   9년 전

안녕하세요

한 40%채점하다 시간초과가 뜨네요..ㅠ

첫번째 for문에서 일어난거같은데

이 for문 안에 있는 코드도 복잡한건가요??

대,소문자를 구별하지 않으니 편의상 소문자는 대문자로 변환하고

alph배열에 A는 alph배열 인덱스 0을 ,B는 alph배열 인덱스 1을... Z는 alph배열 인덱스 25를

하나씩 더해주는 식으로 각 알파벳이 몇개있는지 구합니다.

그 후, 구한 알파벳의 개수의 최댓값을 구하고 그것이 두개 이상인지 판별하는 방법으로 구현했는데

시간초과가 떠버리네요..

아니면 입력한 단어의 끝까지 조사하지 않아도 풀 수 있는건가요...?

어제부터 틈틈히 생각해서  많이 보완하긴 했는데 더이상 생각의 길이 막혀서 도움을 요청해봅니다.!

WeissBlume   9년 전

strlen(arr)을 for문의 조건 부분에 써놓으셨는데,

이렇게 하면 for가 한 바퀴 돌 때마다(조건이 체크될때마다) strlen이 실행되어서 수행 시간에 문자열의 길이가 곱해지게 됩니다.

int len = strlen(arr);

for (int i = 0; i < len; i++) 이런 식으로 변수에 넣어서 사용하세요.

monkeydluppy   9년 전

!! 조언 주신대로 하니 맞았네요 정말 감사합니다..!!

하나 배워가네요

앞으로 배열쓸때는 for문에 strlen을쓰지 말아야겠네요.감사합니다!!

vdoring   2년 전

감사합니다!

wl0034   2년 전

정말 감사합니다 ㅜㅜ

lsw9610   2년 전

감사합니다. 새로운 정보 알고 갑니다!

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