14426.접두사 찾기
- 풀이
- S를 사전순으로 정렬
- 접두사 탐색을 위해 정렬 필수
- 각 검사 문자열 c에 대해 이진 탐색으로 c가 들어갈 위치 찾기 (bisect_left)
- idx = bisect_left(S, c)
- 찾은 위치의 문자열가 c를 접두사로 가지는지 확인
- S[idx][:len(c)] == c → 접두사 여부 판별
- startswith로도 확인 가능
- slst[idx].startswith(c)
- 접두사면 카운트 증가
- S를 사전순으로 정렬
from bisect import bisect_left
n, m = map(int, input().split())
slst = sorted(input() for _ in range(n))
clst = [input() for _ in range(m)]
cnt = 0
for c in clst:
idx = bisect_left(slst, c)
if idx >= n:
continue
if slst[idx][:len(c)] == c:
cnt += 1
print(cnt)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][이분탐색] 10816. 숫자 카드2 (0) | 2025.09.04 |
|---|---|
| [백준][이분탐색] 1920. 수 찾기 (0) | 2025.08.06 |
| [백준] 27210.신을 모시는 사당 (0) | 2025.06.26 |
| [백준][시뮬레이션] 18428.감시 피하기 (1) | 2025.06.20 |
| [백준][재귀][DFS] 25515.트리 노드 합의 최댓값 (1) | 2025.06.18 |