• (알고리즘) KMP 문자 검색 알고리즘 + 백준 1786번 찾기

    참고 자료 본 글은 내가 정리하기 위해 따로 해놓은 것으로 나는 갓멍멍님의 글을 참고했다. KMP 알고리즘 KMP 알고리즘은 문자열(텍스트)에서 특정 문자열(패턴)을 효율적으로 찾아내기 위한 방법이다. 문자열(T)에서 패턴(P)를 찾아내는데 필요한 시간이 O(N*M)이라고 할때 이 알고리즘을 사용하면 O(N+M)만에 처리 가능하다! 문자열의 i번째부터 패턴 j번째와 비교할 때 다를 경우에 문자열의 i+1 과 패턴의...


  • (백준 알고리즘 문제풀이) 1305번 광고

    문제 문제 링크 문제 접근 이 문제는 make_pi를 이용하면 쉽게 풀수 있는 문제이다. 접두사와 접미사가 같은 경우를 생각해보면, 현 문자열에서 접두사와 접미사가 최대로 같을 때 그 길이를 빼면 광고 문구를 구할 수 있다. 예를 들어 aaaaa 같은 경우, 최대로 같은 경우는 접두사가 aaaa고 접미사가 aaaa인 경우로 4개 이다. 이때 그럼...


  • (백준 알고리즘 문제풀이) 9935번 문자열 폭발

    문제 문제 링크 문제 접근 처음에는 문자열에서 폭발 문자열이 존재하지 않을 때까지 폭발 시키기를 반복하고 결과를 출력하였다. #include <iostream> #include <string> using namespace std; int main(){ string s, bomb; cin >> s >> bomb; while(1){ string::size_type n = s.find(bomb); if(n == string::npos)break; s = s.substr(0, n) + s.substr(n + bomb.length(),...


  • (백준 알고리즘 문제풀이) 3986번 좋은 단어

    문제 문제 링크 문제 접근 이 문제도 문자열 폭발 문제와 유사하게 스택을 사용하면 용이하다. 문자열의 문자를 처음부터 끝까지 하나씩 보면서 현재 stack에 top과 비교한다. 같다면 stack의 top을 하나 줄여주고 다르다면 stack에 해당 문자를 넣어준다. 문자열을 다 돈 후의 top가 0이면 좋은 문자열로 판정한다! 코드 #include <cstdio> char stack[100002]; int n,...


  • 알고리즘 도전자를 위한 국제 && 국내 코딩 대회 정리

    휴학하고 ACM-ICPC와 같은 알고리즘 대회를 열심히 나가고자 했으나 무슨 대회가 있는지 참여는 어떻게 하는지 몰라 방황하고 있었다. 나와 같은 사람들을 위해 알고리즘 마스터가 되기 까지 열심히 나가볼 수 있는 대회를 정리해보고자 한다. 대형 코딩 대회 주최는 보통 1년 단위로 진행되기 때문에 올해 대회가 이미 끝났다면 내년 이맘때 쯤으로 계획을 잡고...