[๋ฐฑ์ค€-2776] ์•”๊ธฐ์™• / Python

๐Ÿ“š Problem Solving/Baekjoon

https://www.acmicpc.net/problem/2776

 

2776๋ฒˆ: ์•”๊ธฐ์™•

์—ฐ์ข…์ด๋Š” ์—„์ฒญ๋‚œ ๊ธฐ์–ต๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋ฃจ ๋™์•ˆ ๋ณธ ์ •์ˆ˜๋“ค์„ ๋ชจ๋‘ ๊ธฐ์–ต ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฅผ ๋ฏฟ์„ ์ˆ˜ ์—†๋Š” ๋™๊ทœ๋Š” ๊ทธ์˜ ๊ธฐ์–ต๋ ฅ์„ ์‹œํ—˜ํ•ด ๋ณด๊ธฐ๋กœ ํ•œ๋‹ค. ๋™๊ทœ๋Š” ์—ฐ์ข…์„ ๋”ฐ๋ผ ๋‹ค๋‹ˆ๋ฉฐ,

www.acmicpc.net

import sys

def binary_search(start, end, note1, num):
    while start <= end:
        mid = (start+end)//2
        if note1[mid] == num:
            return 1
        elif note1[mid] < num:
            start = mid + 1
        else:
            end = mid - 1
    return 0

for _ in range(int(sys.stdin.readline())):
    n = int(sys.stdin.readline())
    note1 = list(map(int, sys.stdin.readline().split()))
    m = int(sys.stdin.readline())
    note2 = list(map(int, sys.stdin.readline().split()))
    note1.sort()
    for num in note2:
        print(binary_search(0, n-1, note1, num))

 

ํ•ด์„ค

๊ฐ„๋‹จํ•œ ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ. ๋…ธํŠธ1์„ ์ •๋ ฌํ•ด์ค€ ํ›„, ๋…ธํŠธ2์˜ ๋ฐ์ดํ„ฐ๋กœ ๋…ธํŠธ1์—์„œ ์ด๋ถ„ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.