프로그래밍/알고리즘 2

KMP 알고리즘 완전히 파헤치기 - 문자열 검색

드디어 알고리즘 첫 번째 포스팅입니다. (미라클 모닝은 물건너 간 것인가.. 새벽에--b 역시 올빼미에서 벗어날 수 없는 걸까요..) "tomatitomatomato"라는 문자열이 있습니다. 멋쟁이 "tomato"를 찾고 싶은데 몇 개나 있을까요? 문자열에서 "tomato" 는 앞뒤로 겹쳐 보일 수도 있습니다. ※ 예로 "ababa" 에서 "aba" 는 2개로 취급합니다. 1. naive 한 접근 우직하게 처음부터 한글자씩 비교하여 찾아봅니다. 총 16 길이의 text 문자열에서 길이6의 "tomato"를 11번(16 - 6 + 1) step 만큼 찾아봐야 합니다. 또한 각 step 별로 6글자인 "tomato" 를 6번씩 비교하게 됩니다.총 66번 step 7, step 11번 index에 "tomat..

알고리즘 어렵지 않아요

알고리즘 관련 글들을 포스팅해보려 합니다. 포스팅의 주목적은 알고리즘의 지식 정리입니다. 저도 항상 공부해야 하는 입장이라 이미 알고 있거나 알아야 하는 내용들 정리가 필요하기 때문입니다. 혹시 '알고리즘은 어려운 것이다'라는 편견을 가지고 계신 분들을 위해 드리고 싶은 말씀은 그저 알고 싶은 만큼만 취하면 어떨까? 입니다. 물론 입시와 입사, 승진을 위해 필요한 일이라면 다르겠지만.. 그냥 세상에 문제를 해결할 수 있는 방법들은 다양하고 뛰어난 방법들을 알면 재미있고 좋다?라고 생각하면 편하게 접근할 수 있지 않을까 합니다.. 하지만 저 역시 피곤하고 어렵습니다 :S 알고리즘을 알아야 하는 이유는 컴퓨터 프로그래밍 시 논리적인 사고를 기르고, 문제 해결 능력을 위한 것 같습니다. 앞으로 소개하게 될 내..

반응형