알고리즘/KMP3 5525 IOIOI 백준 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include #include using namespace std; int main() { //입력값 모두 받기 int n, s; string str; scanf("%d %d", &n, &s); getchar(); getline(cin, str); // 비교할 패턴 만들기 vector pattern; int patternLen = n * 2 + 1; for (int i = 1; i 2019. 3. 31. 10769 행복한가 슬픈가 (KMP 사용 x) 백준 1234567891011121314151617181920212223242526272829303132333435363738394041#include #include #include using namespace std; int main() { // 입력받는 문장, 웃음, 슬픔 이모티콘 초기화 string line, face; getline(cin, line); face = ":- "; //검색 시작 int len = line.size(); int idx = 0, tmpSmile = 0, tmpSad = 0; for (int i = 0; i tmpSad) printf("happy"); else if (tmpSmile 2019. 3. 31. 1786 찾기 백준 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include #include #include using namespace std; string T;string P;vector pi; int main() { getline(cin, T); getline(cin, P); // pi 배열 완성하기 int lenP = P.size(); int cmp = 0; //비교를 하는 앞부분 idx vector pi(lenP+1, 0); for (int i = 1; i 0 && P[i] != P[cmp]) cmp = pi[cmp - 1]; // 일치하지 않을 경우, parent로 이동 if .. 2019. 3. 29. 이전 1 다음