728x90
https://www.acmicpc.net/problem/1764
# 조건
- 듣지도 못한 사람의 명단
- 보지도 못한 사람의 명단이 주어질 때
- 듣지도 보지도 못한 사람의 명단을 구하라
- N, M <= 500,000 자연수
# 접근 방법
- 리스트를 이용하면 시간초과가 발생
- 따라서 딕셔너리를 이용해주자.
- 듣지도 못한 사람을 딕셔너리로 받아준 후, 보지도 못한 사람 명단에 존재한다면 result 리스트에 넣어준다.
- result 리스트를 정렬한 후 길이와 명단 차례대로 출력
# 리스트 - 시간초과
# 수빈이 위치, 동생의 위치
N, M = map(int, input().split())
listen = [input() for _ in range(N)]
watch = [input() for _ in range(N)]
listen_watch = []
for i in listen:
if i in watch:
listen_watch.append(i)
listen_watch.sort()
print(len(listen_watch))
for j in listen_watch:
print(j)
# 딕셔너리 - 통과
# 수빈이 위치, 동생의 위치
N, M = map(int, input().split())
result = []
listen = dict()
for i in range(N):
listen[input()] = 1
for j in range(M):
a = input()
if listen.get(a):
result.append(a)
result.sort()
print(len(result))
for k in result:
print(k)
- 항상 시간 효율이 필요할 것 같을 땐, 줄일 수 있는 방법을 생각해보자.
728x90
'ALGORITHM > 자료구조' 카테고리의 다른 글
[백준 5430번] 파이썬 - AC (0) | 2022.10.11 |
---|---|
[백준 7662번] 파이썬 - 이중 우선순위 큐 (0) | 2022.10.09 |
[백준 1966] 파이썬 - 프린터 큐 (0) | 2022.09.16 |
[백준 11866] 파이썬 - 요세푸스 문제 0 (0) | 2022.09.15 |
[백준 9012번] 파이썬 - 괄호 (1) | 2022.09.13 |