[PY] 10815 : 숫자카드

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

풀어봐놓고 틀려서 너무 멘탈 흔들렸다

import sys
# 상근의 카드가 찾을 targetList

def binarySearch(left, right, target):

      
    while left <= right:
        mid = (left + right) // 2
        testTarget = targetPool[mid]
        if testTarget == target:
            return mid
        elif(testTarget > target):
            right = mid - 1
        elif(testTarget < target):
            left = mid + 1

    return -1
      # -1만 아니면 값을 찾았다고 할 수 있다.
      # 실제 입력이 -1이 들어올 수도 있는걸 생각하지를 못했다. 반면에 idx를 반환하면 반드시 값은 존재하는 것이니까..


targetCnt = int(sys.stdin.readline())
targetPool = list(map(int, sys.stdin.readline().strip().split()))[:targetCnt]

searchCnt = int(sys.stdin.readline())
searchPool = list(map(int, sys.stdin.readline().strip().split()))[:searchCnt]
targetPool.sort()


for i in range(searchCnt):
    result = binarySearch(0, len(targetPool) - 1, searchPool[i])
    if(result == -1):
        searchPool[i] = 0
    else:
        searchPool[i] = 1


for i in range(len(searchPool)):
    print(str(searchPool[i]) + " " , end="")

이분 탐색 코드 안에 있는 testTarget이 이전에는 return mid가 아닌 testTarget을 반환하게 했는데 이게 문제였다.
-1이 실제 값으로 사용 될 여지가 있었고 그래서 부적절한 return을 사용 한 상태였다.