본문 바로가기

라빈-카프(Rabin-Karp) 알고리즘3

[Baekjoon] 7785번: 회사에 있는 사람 https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 문제 해결 과정 착안 많은 문자열에 대해, 입출력마다 요소를 보관할 컨테이너에 요소가 존재하는지 판단해야하기 때문에 해시(hash) 코드를 키로 가지는 std::map 클래스를 이용하고자 했다. 이때 주어지는 문자열의 길이가 5 이하이므로 매우 짧은 편에 속해, unsigned long long 자료형과 다항 롤링 해시(polynomial rolling ha.. 2023. 6. 7.
[Baekjoon] 1620번: 나는야 포켓몬 마스터 이다솜 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 고작 방금 받은 피카추로 꼬렛을 잡자마자 바로 사천왕의 자리를 넘보는 다솜짱(폼 미쳤다). 우리 같은 일반인들은 몇날 며칠을 노가다해서 푸키먼을 키우고 나서야 겨우 도달할 수 있는 사천왕이 있는 장소에 고작 방금 잡은 꼬렛 한 마리 가지고 1 분도 안돼서 턱밑까지 다가갔다 온 다솜짱은 정말 놀랍게도 푸키먼 번호와 이름은 잘 못 외우는지, 우리의 도움이 필요한 상황이다... 2023. 5. 10.
[Baekjoon] 14425번: 문자열 집합 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 오늘의 코딩 문제 풀이 포스팅부터는 본인의 공부 차원에서, 단순히 문제를 해결하기 위한 정답 코스만이 아니라 문제를 해결하면서 실패한 과정까지도 포스팅에 어느정도 간단히 기록을 해보려고 한다. 실패 과정을 복기하고, 왜 실패했는지 분석하는 방법은 단순히 공부 뿐 아니라 하물며 게임 실력 기르는 데에도 좋은 습관이다(게임을 그냥 즐기는 거 이상으로 잘 하고 싶다면.... 2023. 5. 9.