strlen
(arr)
을 for문의 조건 부분에 써놓으셨는데,
이렇게 하면 for가 한 바퀴 돌 때마다(조건이 체크될때마다) strlen이 실행되어서 수행 시간에 문자열의 길이가 곱해지게 됩니다.
int len = strlen(arr);
for (int i = 0; i < len; i++) 이런 식으로 변수에 넣어서 사용하세요.
1157번 - 단어 공부
strlen
(arr)
을 for문의 조건 부분에 써놓으셨는데,
이렇게 하면 for가 한 바퀴 돌 때마다(조건이 체크될때마다) strlen이 실행되어서 수행 시간에 문자열의 길이가 곱해지게 됩니다.
int len = strlen(arr);
for (int i = 0; i < len; i++) 이런 식으로 변수에 넣어서 사용하세요.
!! 조언 주신대로 하니 맞았네요 정말 감사합니다..!!
하나 배워가네요
앞으로 배열쓸때는 for문에 strlen을쓰지 말아야겠네요.감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
monkeydluppy 9년 전 1
안녕하세요
한 40%채점하다 시간초과가 뜨네요..ㅠ
첫번째 for문에서 일어난거같은데
이 for문 안에 있는 코드도 복잡한건가요??
대,소문자를 구별하지 않으니 편의상 소문자는 대문자로 변환하고
alph배열에 A는 alph배열 인덱스 0을 ,B는 alph배열 인덱스 1을... Z는 alph배열 인덱스 25를
하나씩 더해주는 식으로 각 알파벳이 몇개있는지 구합니다.
그 후, 구한 알파벳의 개수의 최댓값을 구하고 그것이 두개 이상인지 판별하는 방법으로 구현했는데
시간초과가 떠버리네요..
아니면 입력한 단어의 끝까지 조사하지 않아도 풀 수 있는건가요...?
어제부터 틈틈히 생각해서 많이 보완하긴 했는데 더이상 생각의 길이 막혀서 도움을 요청해봅니다.!