성장일기

[python] 백준 1764 - 듣보잡 본문

알고리즘 문제

[python] 백준 1764 - 듣보잡

김몽몽 2021. 12. 27. 12:29

듣도 못한 사람 N,

보도 못한 사람 M

듣도 보도 못한 사람을 사전순으로 출력

 

<시간 초과>

1. 처음에 for i in li: if i in li2해서 찾았으나 바로 시간초과

  -> in 자체가 리스트 순회라 시간이 많이 걸림 

2. (아래) 인덱스로 찾아보려 했으나 4% 채점 후 바로 시간초과

import sys
n,m=map(int,sys.stdin.readline().split()) #듣n, 보m
li=[]
li2=[]
for i in range(n+m):
    a=sys.stdin.readline().rstrip()
    if i<n:
        li.append(a)  #듣도 못한 사람은 li에 추가
    else:
        li2.append(a)  #보도 못한 사람은 li2에 추가

result=[]
for i in range(len(li)):
    for j in range(len(li2)):
        if li[i]==li2[j]:  #li와 li2에 둘 다 있으면
            result.append(li[i])
        
result.sort()  #사전순
print(len(result))
for i in result:
    print(i)

 

✨자료형 바꾸기 - 딕셔너리

import sys
n,m=map(int,sys.stdin.readline().split())
li1=dict() #딕셔너리
result=[]

for i in range(n):
    temp=sys.stdin.readline().rstrip()
    li1[temp]=1

for i in range(m):
    temp=sys.stdin.readline().rstrip()
    if temp in li1:
        result.append(temp)  #li에 있으면 result에 append

result.sort()  #정렬
print(len(result))
for name in result:
    print(name)

 

'알고리즘 문제' 카테고리의 다른 글

[python] 백준 2941 - 크로아티아 알파벳  (0) 2021.12.27
[python] 백준 11399 - ATM  (0) 2021.12.27
[python] 백준 3036 - 링  (0) 2021.12.27
[python] 백준 9613 - GCD 합  (0) 2021.12.27
실버 3 🎉  (0) 2021.12.26