Algorithm/BOJ
[백준/14425] 문자열 집합 (with 파이썬)
Potato potage
2022. 12. 1. 16:25
반응형
✔ 문제
✔ 풀이
🥺 시간초과
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
s = [input() for _ in range(n)]
count = 0
for _ in range(m):
ms = input()
if ms in s:
count += 1
print(count)
😎 정답 코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
s = set([input() for _ in range(n)])
count = 0
for _ in range(m):
ms = input()
if ms in s:
count += 1
print(count)
✔ 설명
입력받은 ms가 s에 있는지 확인 > 있을 경우 count += 1을 한 후 count 값을 리턴하면 된다.
시간초과가 난 경우 list를 사용했으며 통과 코드는 set을 사용했는데 set이 list보다 실행 속도가 더 빠른 것을 알 수 있다.
set의 실행 속도는 O(1)이며, List 실행속도는 O(n)이기 때문에 잦은 탐색이 있다면 set을 사용하는 것이 더 빠르게 접근할 수 있을 것이다.
반응형