처음에는 아래와 같이 이중 for문으로 풀었다.
import sys
n=int(sys.stdin.readline().strip())
l1=list(map(int, sys.stdin.readline().strip().split()))
m=int(sys.stdin.readline().strip())
l2=list(map(int, sys.stdin.readline().strip().split()))
result=[]
for i in l2:
cnt=0
for j in l1:
if i==j:
cnt+=1
result.append(cnt)
for k in result:
print(k, end=' ')
그리고 역시나 시간초과.. 흑흑.. 그래서 딕셔너리를 이용해 풀어보았다.
import sys
n=int(sys.stdin.readline().strip())
l1=list(map(int, sys.stdin.readline().strip().split()))
m=int(sys.stdin.readline().strip())
l2=list(map(int, sys.stdin.readline().strip().split()))
l1.sort()
cnt={}
for i in l1:
if i in cnt:
cnt[i]+=1
else:
cnt[i]=1 #딕셔니리 추가
for j in l2: #출력
if j in cnt:
print(cnt[j], end=' ')
else:
print("0", end=' ')
무지성으로 풀지 말고 시간 초과를 최대한 줄일 수 있는 방법을 먼저 생각하고 풀어야할 것 같다..
딕셔너리 넣는 방법 까먹어서 구글링했는데 이것도 조만간 포스팅해야지..
훌륭한 글 감사드립니다.