
https://www.acmicpc.net/problem/2776
λ¬Έμ
μ°μ’ μ΄λ μμ²λ κΈ°μ΅λ ₯μ κ°μ§κ³ μλ€. κ·Έλμ ν루 λμ λ³Έ μ μλ€μ λͺ¨λ κΈ°μ΅ ν μ μλ€. νμ§λ§ μ΄λ₯Ό λ―Ώμ μ μλ λκ·λ κ·Έμ κΈ°μ΅λ ₯μ μνν΄ λ³΄κΈ°λ‘ νλ€. λκ·λ μ°μ’ μ λ°λΌ λ€λλ©°, μ°μ’ μ΄ ν루 λμ λ³Έ μ μλ€μ λͺ¨λ βμ첩1βμ μ μ΄ λμλ€. κ·Έκ²μ λ°νμΌλ‘ κ·Έκ° μ§μ§ μκΈ°μμΈμ§ μμ보기 μν΄, λκ·λ μ°μ’ μκ² Mκ°μ μ§λ¬Έμ λμ‘λ€. μ§λ¬Έμ λ΄μ©μ βXλΌλ μ μλ₯Ό μ€λ λ³Έ μ μ΄ μλκ°?β μ΄λ€. μ°μ’ μ λ§νμμ΄ λͺ¨λ λλ΅μ νκ³ , λκ·λ μ°μ’ μ΄ λ΄€λ€κ³ μ£Όμ₯νλ μ λ€μ βμ첩2βμ μ μ΄ λμλ€. μ§μ λμμ¨ λκ·λ λ΅μ΄ λ§λμ§ νμΈνλ € νμ§λ§, μ°μ’ μ λ°λΌλ€λλλΌ λ무 νλ€μ΄μ μ¬λ¬λΆμκ² λμμ μμ²νλ€. λκ·λ₯Ό λμμ£ΌκΈ° μν΄ βμ첩2βμ μ νμλ μμλλ‘, κ°κ°μ μμ λνμ¬, βμ첩1βμ μμΌλ©΄ 1μ, μμΌλ©΄ 0μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±ν΄λ³΄μ.
μ λ ₯
첫째 μ€μ ν μ€νΈμΌμ΄μ€μ κ°μ Tκ° λ€μ΄μ¨λ€. λ€μ μ€μλ βμ첩 1βμ μ μ΄ λμ μ μμ κ°μ N(1 β€ N β€ 1,000,000)μ΄ μ λ ₯μΌλ‘ λ€μ΄μ¨λ€. κ·Έ λ€μ μ€μ βμ첩 1βμ μ ν μλ μ μλ€μ΄ Nκ° λ€μ΄μ¨λ€. κ·Έ λ€μ μ€μλ βμ첩 2βμ μ μ΄ λμ μ μμ κ°μ M(1 β€ M β€ 1,000,000) μ΄ μ£Όμ΄μ§κ³ , λ€μ μ€μ βμ첩 2βμ μ μ΄ λμ μ μλ€μ΄ μ λ ₯μΌλ‘ Mκ° λ€μ΄μ¨λ€. λͺ¨λ μ μλ€μ λ²μλ int λ‘ νλ€.
μΆλ ₯
βμ첩2βμ μ νμλ Mκ°μ μ«μ μμλλ‘, βμ첩1βμ μμΌλ©΄ 1μ, μμΌλ©΄ 0μ μΆλ ₯νλ€.
μμ

쑰건
- μκ° μ ν: 2μ΄
- λ©λͺ¨λ¦¬ μ ν: 256MB
import sys
input = sys.stdin.readline
# Binary Search
def BS(goal):
start,end = 0,len(lst1)-1
while start <= end:
i = (start+end)//2
num = lst1[i]
if num == goal:
return 1
elif num > goal:
end = (i-1)
else:
start = (i+1)
return 0
T = int(input())
for _ in range(T):
N = int(input())
lst1 = sorted(list(map(int,input().split())))
M = int(input())
lst2 = list(map(int,input().split()))
for i in lst2:
print(BS(i))
lst1μ μ λ ¬ν νμ,lst2μ μμλ€λ‘μ΄λΆ νμμ μ€ννλ€.
iλ₯Ό νμν μΈλ±μ€λ‘ μ νκ³ , λ§μ½ μ°Ύλgoalμ΄ λμ€κ² λλ©΄1μreturnνλ€.
- λͺ¨λ νμμ μλ£νλλ°λ μ°Ύμ§ λͺ»νλ©΄,
0μreturnνλ€.
λλ μ & λ°°μ΄ μ