감자튀김 공장🍟

[백준/14425] 문자열 집합 (with 파이썬) 본문

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을 사용하는 것이 더 빠르게 접근할 수 있을 것이다.

 

 

반응형
Comments