본문 바로가기

스터디 1일 1커밋

240430 [BOJ/백준] 1764. 듣보잡

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


나의 코드

import sys
N, M = map(int, input().split())
dict = {}
for _ in range(N):
    dict[sys.stdin.readline().rstrip()] = _
ans = []
for i in range(M):
    name = sys.stdin.readline().rstrip()
    if name in dict:
        ans.append(name)
ans.sort()
print(len(ans))
for k in ans:
    print(k)

결과


입력값 500000개였지만 readline안썼는데 그래서 시간초과된줄 알고 readline썼는데도 시간초과 됐다. 그리고 사전순으로 출력인데 문제읽을 때 생각했는데 정작 코드에 안넣어서 틀리고 sort넣어서 성공. 리스트와 딕셔너리로 풀었을 때의 시간차이를 너무나도 체감한 문제였다.

알고리즘에 해싱 어쩌구 있어서 해싱에 대해서 찾아봤는데 결국 그냥 딕셔너리로 풀라는 말이었다고 생각하기로..ㅎㅎ