Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Mar 3, 2025

🧷 문제 링크

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

🧭 풀이 시간

100분

👀 체감 난이도

✏️ 문제 설명

  • C가지 색상과 N개의 팀명이 주어진다.
  • 문자열이 Q개 주어지면, 각 문자열이 색상 이름 + 팀명의 꼴인지 아닌지 판별해보자.

🔍 풀이 방법

[사용한 알고리즘]

  • 트라이

  1. 검사하는 문자열 S에 대해, 각 인덱스가 어떤 색상의 마지막 글자가 될 수 있는지 검사해야 한다.
  2. 참으로 판별되었으면, 나머지 뒷부분이 팀명 목록에 포함되어 있는지 검사해야 한다.
  • 1을 해결하기 위해, 색상 이름으로 트라이를 하나 구성했다.
  • 2를 해결하기 위해, 팀명을 뒤집어서 트라이를 하나 더 구성했다.
  • Q번의 문자열 각각에 대해, 색상 트라이에서 한 번 순회해서 1번 경우가 참이 되는 인덱스를 구한다.
  • 주어진 문자열을 역방향으로 팀명 트라이에서 한 번 순회해서 2번 경우가 참이 되는 인덱스를 구한다.
  • 공통으로 참이 되는 경우가 존재하면 답은 Yes, 아니면 No이다.

⏳ 회고

  • 처음엔 색상을 Set에 전부 넣고, 팀명으로 트라이를 만들어서 해결하려 했는데 시간 초과가 발생했다.
  • 위에 써놓은 풀이도 계속 메모리 초과가 나다가, 트라이 노드의 길이 26 고정 배열을 Map으로 대체하니까 맞았다. 왜지???

@oncsr oncsr added success 👍 해설을 보지 않고 풀었을 때 timeout ⌚ 목표 시간보다 오래걸렸을 때 labels Mar 3, 2025
@ShinHeeEul ShinHeeEul merged commit 838cee9 into main Mar 3, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때 timeout ⌚ 목표 시간보다 오래걸렸을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants