BOJ - 2776

주의·2024년 1월 26일
0

boj

목록 보기
122/214

백준 문제 링크
암기왕

❓접근법

  1. 각 정수를 array_N, array_M에 받아준다.
  2. array_M의 원소를 살펴보는데,
    기본 이분 탐색 코드안에서
  • array_M의 원소가 array_N[mid]와 같다면 break
  • array_M의 원소가 array_N[mid]보다 크다면 end = mid - 1
  • array_M의 원소가 array_N[mid]보다 작다면 start = mid + 1
  1. 반복문이 다 끝난 후 array_N[mid] 가 array_M의 원소와 같다면
    1을 출력하고, 다르다면 0을 출력한다

👌🏻코드

T = int(input())
for _ in range(T):
    
    N = int(input())
    array_N = list(map(int, input().split()))
    array_N.sort()
    
    M = int(input())
    array_M = list(map(int, input().split()))
    
    
    
    for i in array_M:
        start = 0
        end = N-1
        
        while start <= end:
            
            mid = (start + end) // 2
            
            if array_N[mid] == i:
                break
                
            elif array_N[mid] > i:
                end = mid - 1
                
            else:
                start = mid + 1
                
        if array_N[mid] == i:
            print(1)
        else:
            print(0)
        

0개의 댓글