jng6017   1년 전

t 100에 문자열길이 10만이면 절대 시간 초과가 안나지 않나요?

dudn134   1년 전

strlen 함수가 문자열 길이를 구하는 부분에서 시간초과가 나는거 같습니다.

jng6017   1년 전

dudn134

아 혹시 strlen시간복잡도가 길이 만큼 드나요?

그래서 비교할때마다 계속 strlen을 사용을 해서 n^2처럼 나오는건가요?

dudn134   1년 전

strlen의 시간복잡도 그건 저두 잘 모르겠네요 ㅋㅋ..

초보라..

baekjoon   1년 전

문자열 S의 길이를 N이라고 했을 때, strlen의 시간 복잡도는 O(N) 입니다.

따라서, for (int i=0; i<strlen(S); i++) {} 와 같은 코드는 O(N)이 아니고 O(N^2)이 나옵니다.

int len = strlen(S); 와 같은 식으로 따로 변수를 만들어서 for (int i=0; i<len; i++) 로 사용하세요.

jng6017   1년 전

감사합니다. 잘못된 습관 하나 고쳣네요.

adream   1년 전

ㅎㅎ 저두 예전에 그렇게 코딩하다가 시간초과가 많이나서 왜이러지..하면서 한번 옮겨졌는데 휘둥그래..

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