코드연습/BOJ

BOJ 1764 : 듣보잡

AI 로밧 2022. 6. 16. 13:40
728x90

문제

김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.

풀이

풀이 키워드

  1. 어떻게 풀어도 계속 시간 초과 발생
  2. List, dictionary 자료 형 모두 시간 초과
  3. set 자료형을 이용하고 시간 단축 해결
import sys

if __name__ == '__main__':
    N, M = map(int, sys.stdin.readline().split())

    data1 = set()
    data2 = set()
    for i in range(N):
        data1.add(input())
    for i in range(M):
        data2.add(input())

    result = sorted(list(data1 & data2))

    print(len(result))
    for i in result:
        print(i)

  4. sys.stdin.read().splitlines() 로 한번에 문서를 읽고 시간 단축 + 

import sys

if __name__ == '__main__':
    N, M = map(int, sys.stdin.readline().split())

    AllList = sys.stdin.read().splitlines()
    set1 = set(AllList[:N])
    set2 = set(AllList[N:])

    result = list(set1 & set2)
    result.sort()
    print(len(result))
    for i in result:
        print(i)