๋ฌธ์
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 1920๋ฒ
ํ์ด ๊ณผ์
์ฃผ์ด์ง ๋ฐฐ์ด์์ ํน์ ์๋ค์ด ์กด์ฌํ๋์ง ํ๋จํ๋ ๋ฌธ์ ์
๋๋ค.
๋ฐฐ์ด์ ๊ธธ์ด์ ์ฐพ๋ ์๋ค์ด ๊ฐ๊ฐ ์ต๋ 10๋ง์ด๊ธฐ ๋๋ฌธ์ ์์ ํ์์ ์งํํ ๊ฒฝ์ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฐ๋ผ์ ๊ฒ์์ฉ ๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ์ ๋ ฌํ ๋ค์ ์ด๋ถ ํ์
์ ์ด์ฉํด์ O(MlogN)
์ ์๊ฐ ๋ณต์ก๋๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฝ๋
import sys
def find(arr, target):
lo, hi = 0, len(arr) - 1
while lo <= hi:
mid = (lo + hi) // 2
if arr[mid] == target:
return True
elif arr[mid] < target:
lo = mid + 1
else:
hi = mid - 1
return False
def solution(number):
return '1' if find(A, number) else '0'
if __name__ == '__main__':
N = int(input())
A = list(map(int, sys.stdin.readline().split()))
M = int(input())
questions = list(map(int, sys.stdin.readline().split()))
A.sort()
for question in questions:
answer = solution(question)
sys.stdout.write(f"{answer}\n")
๋ฐ์ํ
'๐ algorithm > boj' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 9094 - ์ํ์ ํธ๊ธฐ์ฌ (0) | 2021.09.12 |
---|---|
BOJ 5076 - Web Pages (0) | 2021.07.19 |
BOJ 13700 - ์์ ๋ฒ์ฃ (0) | 2021.06.29 |
BOJ 14950 - ์ ๋ณต์ (0) | 2021.06.25 |
BOJ 1197 - ์ต์ ์คํจ๋ ํธ๋ฆฌ (0) | 2021.06.18 |
๐ฌ ๋๊ธ