yonghoon1999   2년 전

로직은 이런식으로 하는게 맞는거 같은데 오류가 나와요 ㅠㅠ

도와주시면 감사하겠습니다

drash99   2년 전

이 코드는 strlen 함수를 매 반복마다 호출하게 되는데, strlen함수는 O(n)의시간복잡도를 가집니다. 그래서 O(n^2) 시간복잡도가 돼 버려요.

그래서 이를 해결하기 위해서 i < strlen(str) 이렇게 작성하는것이 아닌, 반복문 전에 int len = strlen(str)와 같이 미리 길이를 저장해두고, for문 안에서는 i<len 이런식으로 쓰면 됩니다.


아니면 c에서 \0(string을 종결하는 문자)은 0, 즉 false가 됨을 이용해 for문 조건 체크하는 부분에서 str[i] 이런식으로 넣어도 돼요. str[i]가 존재하지 않을 때(즉 string이 끝날 때) for문이 끝나게 됩니다.

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