๋ฐฑ์ค (boj) 10815 ํ์ด์ฌ - ์ซ์ ์นด๋
https://www.acmicpc.net/problem/10815
10815๋ฒ: ์ซ์ ์นด๋
์ฒซ์งธ ์ค์ ์๊ทผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ ๊ฐ์ N(1 ≤ N ≤ 500,000)์ด๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์ซ์ ์นด๋์ ์ ํ์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ซ์ ์นด๋์ ์ ํ์๋ ์๋ -10,000,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 10,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ ์ซ์ ์นด๋์ ๊ฐ์ ์๊ฐ ์ ํ์๋ ๊ฒฝ์ฐ๋ ์๋ค. ์ ์งธ ์ค์๋ M(1 ≤ M ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋ท์งธ ์ค์๋ ์๊ทผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ซ์ ์นด๋์ธ์ง ์๋์ง๋ฅผ ๊ตฌํด์ผ ํ M๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด
www.acmicpc.net
์๊ฐ์ด๊ณผ๋ฅผ ์ ๋ฐํ๋ ๋ฌธ์ ์๋ค.
์ด๋ฐ ๋ฌธ์ ์ฒ๋ผ ์์์ ์ค๋ณต์ ๋ํ ํน์ฑ์ ์ฌ์ฉํ์ง ์์๋๋ list๋ณด๋ค๋ set์ ์ฌ์ฉํ๋๊ฒ ์ข๋ค๊ณ ํ๋ค.
if num in arr : print(x)
์๋ฅผ๋ค๋ฉด ์ ์ฝ๋์ฒ๋ผ, ์ด๋ค ์งํฉ์ ํฌํจ๋์ด ์๋์ง ํ์ธํ ๋? ๋ฆฌ์คํธ๋ ์ธ๋ฑ์ค 0๋ถํฐ n๊น์ง ์ผ์ผ์ด ๊ฒ์ฌ๋ฅผ ํด์ผํ๋ฏ๋ก ์๊ฐ๋ณต์ก๋๊ฐ O(n) ์ด๊ณ , set์ O(1)์ด๋ผ๊ณ ํ๋ค.
์ด ๋ฌธ์ ์์๋ list๋ฅผ ๋จ์ง set์ผ๋ก ๋ฐ๊พธ์์ ๋ฟ์ธ๋ฐ ์๊ฐ์ด๊ณผ๋ก๋ถํฐ ํด๋ฐฉ๋ ์ ์์๋ค.
import sys
input = sys.stdin.readline
n = int(input())
arr = set(map(int,input().split()))
m = int(input())
m_arr= list(map(int,input().split()))
for i in range(m):
if m_arr[i] in arr :
print(1,end=' ')
else : print(0,end=' ')