반응형
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net


실버4의 매우 간단한 문제지만
List 두 개를 만들어서
for i in List1:
if i in List2:
newList.append(i)
이런 방식으로 시간 복잡도를 개 무시한(?) 코드를 짜버린 나머지 시간 초과가 떴다.
푸는 방법은 정말 간단하다.
문제가 원하는 답안이 A집합과 B, 두 집합의 교집합임으로 그 것만 구해주면 된다.
import sys
N, M = map(int, sys.stdin.readline().split())
heardArr = set()
seenArr = set()
for _ in range(N):
heardArr.add(sys.stdin.readline().rstrip())
for _ in range(M):
seenArr.add(sys.stdin.readline().rstrip())
commonArr = sorted(list(heardArr & seenArr))
print(len(commonArr))
for i in commonArr:
print(i)
한 가지 주의할 점이라하면 set()에 element를 추가할 때는 append함수가 아닌 add 함수를 사용해준다.
반응형
'Algorithm > BOJ' 카테고리의 다른 글
| 백준 (BOJ) - 17219 비밀번호 찾기 [Python] (1) | 2023.12.30 |
|---|---|
| 백준 (BOJ) - 1260 DFS와 BFS [Python] (0) | 2023.02.13 |
| 백준 (BOJ) - 1541 잃어버린 괄호 [Python] (0) | 2023.01.19 |
| 백준 (BOJ) - 2110 공유기 설치 [Python] (0) | 2023.01.05 |
| 백준 (BOJ) - 1931 회의실 배정 [Python] (1) | 2022.11.03 |