import sys
input = sys.stdin.readline
N = int(input())
arr = set(map(int,input().split()))
M = int(input())
brr = list(map(int, input().split()))
ans = []
for x in brr:
ans.append('1' if x in arr else '0')
print('\n'.join(ans))
sys 라이브러리 에는 표준입출력과 관련된 함수들이 있다.
그 중 sys.stdin.readline()은 줄 단위로 읽어오므로 기존의 input()보다 훨씬 빠르다.
대신 뒤에 개행문자도 함께 읽어오므로 주의해야한다.
ans 정답 배열을 미리 만들어 놓고 ans.append()를 이용해 정답들을 추가한 뒤
이 문제는 정답들이 한글자씩이므로 join함수를 통해 개행문자를 추가하였다.
for x in list를 잘 기억해두자.
rkaxhdals 님의 코드
https://www.acmicpc.net/source/35893905
import os, io,sys
I=io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
I()
s=set(I().split())
I()
for x in I().split():sys.stdout.write('1\n'if x in s else'0\n')
첫 줄은 잘 이해가 되지 않으나
s = set(I().split())
은 나와 같은 로직이다. 단, 나와 달리 map을 써서 수들을 int형으로 바꾸지 않았는데, 이는 문자열 그대로 두어도 수를 찾는데는 하등 지장이 없기 때문이다.
sys.stdout.write('1\n'if x in s else'0\n')
이는 그 때 그 때 출력하는 함수들 중 print보다 성능이 매우 좋은 함수이다.