[[TableOfContents]] == ë¬¸ì œ == * [http://183.106.113.109/pool/koi_virus/koi_virus.php?pname=koi_virus] == 권ì˜ê¸° == === 사용 언어 === * C++ === ì•„ì´ë””ì–´ === * KMP Algorithm * KMP Algorithmì€ ë¬¸ìžì—´ 검색 ì•Œê³ ë¦¬ì¦˜ì´ë‹¤. 문ìžì—´ì˜ 길ì´ê°€ s, ê²€ìƒ‰í•˜ë ¤ëŠ” íŒ¨í„´ì˜ ê¸¸ì´ê°€ pì¼ë•Œ, 시간복잡ë„ê°€ O(s + p)ë°–ì— ì•ˆ 나오는 ì—„ì² ì¢‹ì€ ì•Œê³ ë¦¬ì¦˜ìž„. Brute-Forceë¡œ ì°¾ì„ ë•Œ, O(sp)ê°€ 나오는 ê²ƒì„ ê³ ë ¤í•´ë³´ë©´ ì—„ì²ë‚˜ê²Œ ë¹ ë¦„. * Virusë¼ë©´, ëª¨ë“ ëª¨ë“ í”„ë¡œê·¸ëž¨ì— ì¡´ìž¬í• ê²ƒì´ë‹¤. Virusê°€ 아니ë¼ë©´ ì ì–´ë„ í•œ 프로그램ì—는 존재하지 ì•Šì„ ê²ƒì´ë‹¤. * í•œ Programì—ì„œ ê¸¸ì´ kì˜ sub-Patternì„ ì „ë¶€ 구해놓는다. ì´ ê²ƒë“¤ì€ virusì˜ í›„ë³´ê°€ ëœë‹¤. * ê° íŒ¨í„´(후보 ì•ˆì— ìžˆëŠ”)ì„ KMP Algorithmì„ í†µí•´ì„œ ëª¨ë“ í”„ë¡œê·¸ëž¨ì— ê²€ìƒ‰í•´ë³´ë©´ ëœë‹¤. 검색해서 존재하지 않으면, 프로그램ì—ì„œ ì œì™¸í•œë‹¤. * ì´ëŸ° ì‹ìœ¼ë¡œ ëª¨ë“ í”„ë¡œê·¸ëž¨ì„ ê²€ìƒ‰í–ˆì„ ë•Œ, í›„ë³´ì— ì†í•œ íŒ¨í„´ì´ ì•„ë¬´ ê²ƒë„ ì—†ë‹¤ë©´ NO 아니면 YES * 시간 복잡ë„는 O(NM^2) === 풀다가 ê²ªì€ ë¬¸ì œ === * 처ìŒì—는 Python으로 구현하였ìŒ. ê·¼ë° ìžê¾¸ 시간 초과 나옴. 그러나 ë°ì´í„° 규모를 ìƒê°í•˜ë©´ 시간초과가 나올만한 규모는 아님. 언어ì íŠ¹ì„±ì„ íŒŒì•…í•˜ì§€ 못해서 ìƒê¸´ 결과물로 예ìƒí•˜ê³ 있ìŒ. í•œ ì‹œê°„ì€ ë‚ ë¦°ë“¯ :( * ê°™ì€ ì•„ì´ë””ì–´ë¡œ C++ë¡œ 구현하니까 시간 ì•ˆì— ìž˜ 나옴. ã… ã… === 코드 ===