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 |