5_hyun 2022. 6. 8. 17:15
반응형

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

 

14425번: 문자열 집합

첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다.  다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어

www.acmicpc.net

 

내 풀이(맞음)

n, m = map(int, input().split())

ary = []
for i in range(n):
    ary.append(input())

count = 0
for i in range(m):
    x = input()
    if x in ary:
        count += 1
print(count)

사실 이 문제는 단순히 배열에 값이 있냐 없냐를 비교하면서 풀었다. 

이 문제를 풀다가 이진 탐색으로도 풀어보려고 했는데, 문자열 비교는 맨 앞자리만 비교하기 때문에 그냥 이진 탐색으로는 불가능 하다고 생각했다. 뭔가 이 풀이보다 더 좋은 방법이 있을 것 같다. 곰곰히 생각해 봐야겠다.

반응형