쉬운문제이므로 설명은 패스하겠다
그냥 너무 안풀면 감 떨어질까봐 친구랑 몇문제만 풀고가자길래 가벼운마음으로 풀었다
모든 코테가 이정도로 쉬우면 얼마나좋을까..
n,m = map(int,input().split())
s1 = set()
s2 = set()
for _ in range(n):
s1.add(input().rstrip())
for _ in range(m):
s2.add(input().rstrip())
s3 = list(s1 & s2)
print(len(s3))
s3.sort()
for word in s3:
print(word)
n,m = map(int,input().split())
s1 = {}
for _ in range(n):
a = input().rstrip()
if a in s1:
s1[a] += 1
else :
s1[a] = 1
for _ in range(m):
a = input().rstrip()
if a in s1:
s1[a] += 1
else :
s1[a] = 1
answer = [k for k,v in s1.items() if v == 2]
print(len(answer))
answer.sort()
for word in answer:
print(word)
set이랑 dict중에 뭐가 더 빠를까 시간복잡도 계산하다가 그냥 둘다 돌려봤다
세세하게 따지려니깐 뭐가 더 빠른지 수치로 체크하는게 엄청 헷갈린다
먼저 푼게 set연산 결과이고 두번째 푼게 dict 결과이다
set으로 한게 쪼끔 더 빠른것같다
s1.add(3) //1개 추가
s1.update([1,2,3]) // 여러개 추가
s1.remove(3) // 제거
s3 = s1 & s2 하면 두 set의 교집합이 set 타입으로 만들어진다.
s3 = s1 - s2 // 차집합
s3 = s1 | s2 // 합집합
끝!!