코드

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으로 다시 한 번 제출하니 정답으로 인정됐다.

댓글남기기