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

이 문제는 잘못 접근하면 시간초과가 발생할 수 있는 문제이다.
input 대신 sys.stdin.readline()을 이용하고
list 대신 set이나 dictionary를 이용해야 한다.
#######################################################
import sys
#######################################################
n, m = map(int, input().split(" "))
s = set([sys.stdin.readline() for _ in range(n)]) # 속도를 위해 sys.stdin.readline() 을 사용하고 set도 이용해준다.
cnt = 0 # 중복이 몇개나 있는지 cnt할 변수
for i in range(m): # m개 만큼 돌아본다.
c = sys.stdin.readline() # 입력을 바로 받아서
if c in s: # 들어있는지 비교
cnt += 1 # 들어있다면 cnt 올린다.
print(cnt)'Problem Solving > 백준' 카테고리의 다른 글
| 백준 그룹 단어 체커 - 1316 [python, 구현, 문자열] (0) | 2023.06.14 |
|---|---|
| 백준 [Bronze II] 할리갈리 - 27160 [파이썬, 자료 구조, 해시를 사용한 집합과 맵, 구현, 문자열] (0) | 2023.05.26 |
| 백준 절댓값 힙 - 11286 [파이썬, 자료 구조, 우선순위 큐] (0) | 2023.05.04 |
| 백준 최대 힙 - 11279 [파이썬, 자료 구조, 우선순위 큐] (0) | 2023.04.22 |
| 백준 최소 힙 - 1927 [파이썬, 자료 구조, 우선순위 큐] (0) | 2023.04.22 |
댓글