Published:
Updated:

  • Reference
  • 쉬운데 꼼꼼하게 안 풀면 틀리는 문제


Solution

import collections
import sys
from typing import List


def solution(no_listen: List[str], no_look: List[str]) -> List[str]:
    answer = []
    cnt = 0
    no_listen_look = []

    no_listen_map = collections.defaultdict(int)
    for s in no_listen:
        no_listen_map[s] = 1

    for s in no_look:
        if s in no_listen_map:
            # 그냥 카운트 안 하고 len()로 넣어주는 게 더 빠르려나?
            cnt += 1
            no_listen_look.append(s)
            # 지워줘야 중복 처리 되는 줄 알았는데 문제 조건에 이미 중복은 없다고 써있었음
            # del no_listen_map[s]

    answer.append(str(cnt))
    answer += sorted(no_listen_look)  # 이거 정렬 안 해줘서 시간 날림
    return answer


N, M = map(int, sys.stdin.readline().rstrip().split())
no_listen = []
for _ in range(N):
    no_listen.append(sys.stdin.readline().rstrip())

no_look = []
for _ in range(M):
    no_look.append(sys.stdin.readline().rstrip())

print(*solution(no_listen, no_look), sep='\n')

Leave a comment