Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Apr 10, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/2401

🧭 풀이 시간

17분

👀 체감 난이도

✏️ 문제 설명

어떤 긴 문자열이 주어지고 여러 개의 짧은 문자열들이 주어질 때 이때 짧은 문자열을 긴 문자열에 붙여 넣을때 가장 길게 붙여 넣는 경우를 찾아라.
단 이때 짧은 문자열들끼리는 교차 할 수 없다. (‘aabbc' 에 'aab' 와 'bbc' 둘 다 붙여 넣는 것은 불가능하다.) 또, 짧은 문자열은 여러 번 사용할 수 있다.

🔍 풀이 방법

[사용한 알고리즘]

  • KMP
  • DP

짧은 문자열 각각에 대해 부분 일치 테이블을 구했다.
dp[i] = 긴 문자열의 i번째 글자까지 확인했을 때 문제의 정답으로 정의하고,
긴 문자열에서 한 문자씩 보면서 모든 작은 문자열과의 매칭 여부를 확인한다.
매칭된 것이 있다면, dp값을 갱신해준다.

⏳ 회고

코드트리에 있던 문제와 똑같다 (https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-padding-a-string/description)

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Apr 10, 2025
@ShinHeeEul ShinHeeEul merged commit 0d2ff86 into main Apr 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants