1786번 - 찾기
그럼 패턴이 100만개 있다고 가정한다면
int *res = (int*)malloc(sizeof(int)*max_str);
을 사용하고 제출하였는데 같은 구간에서 런타임 에러가 발생합니다.
100만개의 패턴을 저장하는 방법이 저게 아닌가요??
개인적으로는 malloc을 이용한 동적 메모리 할당을 (특히 PS에서는) 되도록 쓰지 않기를 권해 드립니다. https://algospot.com/forum/rea...
본인이 계속해서 malloc을 사용한 부분에 의구심을 가지는 것에서 보듯 정적 배열에 대해 얻는 이득도 없고 디버깅도 어려워집니다.
preprocessing 함수 내에서 j가 fi의 크기를 넘어가는 것으로 보입니다.
설명 감사드립니다.
해결했습니다. =ㅁ=
댓글을 작성하려면 로그인해야 합니다.
khseob0715 6년 전
책에 있는 kmp 알고리즘을 토대로 만든 것이며
남은시간 7초? 21%? 이정도 쯤에서 런타임 에러로 바뀌게 됩니다.
제 생각에는
int *fi = (int*)malloc(sizeof(int)*(plen+1)); // 패턴만큼의 배열을 만든거
이 부분이 패턴의 100만개에 해당하는 배열을 못 만들어서 그런것 같은데
이러면 어떻게 해야될까요?