백준 1920번 - 수 찾기 (Python3)
코드
List 사용 (Pypy3)
n = int(input())
pre = list(map(int, input().split()))
m = int(input())
suf = list(map(int, input().split()))
result = [0] * m
idx = 0
for s in suf:
if s in pre:
result[idx] = 1
idx += 1
for r in result:
print(r)
Set 사용
n = int(input())
pre = set(map(int, input().split()))
m = int(input())
suf = list(map(int, input().split()))
result = [0] * m
idx = 0
for s in suf:
if s in pre:
result[idx] = 1
idx += 1
for r in result:
print(r)
문제 해설
처음 List를 사용하여 문제를 푸니 Python3으로 제출하면 시간 초과가 나왔다. Pypy3을 사용하면 정답으로 인정됐으나 찝찝하여 Set의 in연산의 시간 복잡도가 우수하다는 것이 생각나서 Set으로 다시 한 번 제출하니 정답으로 인정됐다.
댓글남기기