๋ฌธ์
N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ ธ ์์ ๋, ์ด ์์ X๋ผ๋ ์ ์๊ฐ ์กด์ฌํ๋์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ N(1≤N≤100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1≤M≤100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M๊ฐ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ฐ, ์ด ์๋ค์ด A์์ ์กด์ฌํ๋์ง ์์๋ด๋ฉด ๋๋ค. ๋ชจ๋ ์ ์์ ๋ฒ์๋ -231 ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ 231๋ณด๋ค ์๋ค.
์ถ๋ ฅ
M๊ฐ์ ์ค์ ๋ต์ ์ถ๋ ฅํ๋ค. ์กด์ฌํ๋ฉด 1์, ์กด์ฌํ์ง ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค.
์ ๋ต
import sys
n = int(sys.stdin.readline())
a = set(map(int, sys.stdin.readline().split()))
m = int(sys.stdin.readline())
b = list(map(int, sys.stdin.readline().split()))
for i in b:
if i in a:
print('1')
else:
print("0")
๋ ๋ค๋ฅธ ์ ๋ต
import sys
n = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().split()))
a.sort()
m = int(sys.stdin.readline())
b = list(map(int, sys.stdin.readline().split()))
def binary_search(a, x):
start = 0
end = len(a) - 1
while start <= end:
mid = (start + end) // 2
if x == a[mid]:
return 1
elif x > a[mid]:
start = mid + 1
else:
end = mid - 1
return 0
for i in b:
print(binary_search(a, i))
์ด ๋ฐฉ๋ฒ์ ์ด๋ถํ์์ ์ด์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 10178 - ํ ๋ก์์ ์ฌํ (0) | 2020.08.31 |
---|---|
[Python] ๋ฐฑ์ค 9316 - Hello judge (0) | 2020.08.28 |
[Python] ๋ฐฑ์ค 10984 - ๋ด ํ์ ์ ๊ตฌํด์ค (0) | 2020.08.24 |
[Python] ๋ฐฑ์ค 2420 - ์ฌํ๋ฆฌ์๋ (0) | 2020.08.23 |
[Python] ๋ฐฑ์ค 5063 - TGN (0) | 2020.08.23 |