GitHub

https://github.com/Choidongjun0830

파이썬 알고리즘 문제 풀이

[백준] S4. 수 찾기 / 분류 : 자료 구조

gogi masidda 2024. 3. 17. 21:36

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

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net

import sys
input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))
M = int(input())
B = list(map(int, input().split()))
A.sort()

for num in B:
    l, r = 0, N-1
    isExist = False
    #이분 탐색
    while l <= r:
        mid = (l + r) // 2
        if A[mid] == num:
            isExist = True
            print(1)
            break
        elif A[mid] < num:
            l = mid + 1
        else:
            r = mid - 1
    if not isExist:
         print(0)

처음에 선형탐색으로 했더니 시간 초과가 나서 이분 탐색으로 진행하였다.

728x90