[백준] 14425

goodidea·2022년 1월 6일
1

algorithm

목록 보기
3/3
post-thumbnail

문제

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

난이도

Silver 3

풀이

틀린 내용 지적 환영합니다

최종 풀이

코드

import sys
input = sys.stdin.readline

def solution(N, M, S, strings):
    return len(list(filter(lambda x: x in samples, candidates)))

if __name__ == "__main__":
    N, M = map(int, input().split())
    samples = set(input() for _ in range(N))
    candidates = [input() for _ in range(M)]
    print(solution(N, M, samples, candidates))

아이디어

  • 후보 문자열을 순회하며, 해당 후보 문자열이 샘플 문자열 집합에 포함되는지 여부 판단
  • 샘플 집합 포함 여부 판단 방법: 리스트일 경우 O(N), 집합일 경우 O(1) -> 샘플 문자열 집합을 set에 담아 검사한다.
  • 포함되는 요소만 filter를 통해 거른 후, 개수 카운트
  • for loop을 사용하여 count 변수 값을 더하여도 됨

소요 시간

  • 13분: 샘플 문자열과 후보 문자열 집합으로 생각해서 헤맸다.

복잡도

3 O(1) O(M) = O(M)

profile
백엔드 꿈나무

0개의 댓글