Python/백준

14425_문자열 집합

728x90

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

 

 

 

14425번: 문자열 집합

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

www.acmicpc.net

 

 

 

단순하게 풀 수 있는 문제인데 리스트로 풀면 시간초과가 나는 문제였다...

 

새롭게 알게된 사실인데 list자료형의 삽입,탐색등의 시간복잡도는 O(n)이며 딕셔너리 set의 자료형은 O(1)이라서 많은 차이가 난다고 한다. 이를 잘 생각하고 풀어보는것도 괜찮은 것 같다.

 

 

 

 

import sys
input = sys.stdin.readline
n,m = map(int,input().split())

S={}
for i in range(n):
   S[input().strip()] = True

cnt=0
for _ in range(m):
    if input().strip() in S:
        cnt +=1
print(cnt)

 

 

 

728x90

'Python > 백준' 카테고리의 다른 글

2482_색상환  (0) 2022.06.07
11478_서로다른부분문자열의 개수  (0) 2022.06.06
17404_RGB거리2  (0) 2022.06.01
2098_외판원순회 1  (0) 2022.05.31
11723_집합  (0) 2022.05.29