6개의 댓글이 있습니다.
-
-
astein -
음... 이런거 써도 될지 모르겠는데. 일단 몇 가지 간단한 팁[?]을 써 보면요.
1. 문자열 S1이 다른 문자열 S2를 완전히 포함하는 경우 S2는 string에서 삭제해도 무관.
2. String이 100개이고 최대 200글자이기 때문에, table[i][j] = {Si 뒤에 Sj를 둔다고 할 때 겹치는 최대 글자 수} 라고 정의하면 100 * 100 * 200 번의 iteration으로 모두 계산할 수 있습니다. 즉, suffix tree를 구현할 이유는 없어집니다. :-)
저도 이 문제 예전에 TSP로 바꿔서 풀어본 기억이 있구요 'ㅁ'.. TSP에서 좋은 해를 찾으려면 SA로 구현하는게 좋지 않을까 싶은...
16년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
일런데스
밑의 문제에 대해서 고민을 해봤는데요..
각 문자열을 Vertex로 놓고, 겹치는 문자열을 edge로 하여..
TSP할까 하는데.. 이게 시간 복잡도가 오래걸릴까요?
suffix tree를 이용해서 pattern을 구하기 쉽다는게 전 이해가 안갑니다.
어느 것의 뒷부분과 어느것의 앞부분이 겹치는 정도를 측정해야 할텐데.. 그게
suffix tree와 무슨 연관이 있는지 아무리 봐도모르겠네요...
입력은 GATC로 제한된 문자집단에서..
100개의 String(최대 200글자)로 정해져 있고..
실행제한시간은 10분입니다.
suffix tree와 겹치는 정도를 측정하는 연관성을 아시면 좀 알려주세요.
저는 그냥 naive하게.. 각문자열을 일일이 KMP인가?? 그 방법을 쓸까 하는데..
16년 전