풀이 1
n, m = map(int,input().split())
d= {}
for i in range(n):
name = input()
d[name] = 1
for i in range(m):
name = input()
if name not in d:
d[name] = 1
else:
d[name] = d[name] +1
res = []
for dic in d:
if d[dic] == 2:
res.append(dic)
res.sort()
print(len(res))
for r in res:
print(r)
- 듣도 못한 사람을 키로 값을 1로 만들어 체크해준다.
- 보도 못한 사람 중 듣도 못한 사람과 겹치면 해당 값에 +1 해준다.
- 이때 값이 2인 키들만 res 리스트에 담아주고 이를 오름차순으로 출력하기 위해서 정렬해준다.
풀이 2
n, m = map(int,input().split())
d= {}
res = []
for i in range(n):
name = input()
d[name] = 1
for i in range(m):
name = input()
if name in d:
res.append(name)
res.sort()
print(len(res))
for r in res:
print(r)
- 두 리스트를 다 돌 필요 없이 첫 번째 듣도 못한 사람 리스트에서 체크된 경우만 res 리스트에 담아서 이를 정렬한 뒤 길이를 출력하고 해당 이름을 출력해준다.
'문제풀이 > 백준(Boj) 문제풀이' 카테고리의 다른 글
[백준][구현] - 2475. 검증수 (0) | 2022.08.04 |
---|---|
[백준][구현] - 2743. 단어 길이 재기 (0) | 2022.08.04 |
[백준][파이썬] - 1269. 대칭 차집합(파이썬/python) (0) | 2022.07.20 |
[백준][파이썬] - 10816. 숫자 카드 2(파이썬/python) (0) | 2022.07.20 |
[백준][파이썬] - 2480. 주사위 세개(파이썬/python) (0) | 2022.07.20 |