728x90
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())
N_list = list(map(int, input().split()))
N_list.sort()
M = int(input())
M_list = list(map(int, input().split()))
# M_list의 원소가 N_list에 존재하는지 알아내는 문제
def binarySearch(s, e, key):
while s <= e:
m = (s + e) // 2
if N_list[m] == key:
return 1
elif N_list[m] < key:
s = m + 1
else: # N_list[m] > key
e = m - 1
return 0
for i in range(len(M_list)):
print(binarySearch(0, N - 1, M_list[i]))
M_list의 원소가 N_list에 존재하는지 알아내는 문제이다
이분탐색을 활용해서 풀면되는데 N_list가 정렬이 되어있지 않다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 2644 촌수계산 python (0) | 2021.04.29 |
---|---|
[백준] 1107 리모컨 python (0) | 2021.04.28 |
[백준] 1874 스택수열 python (0) | 2021.04.28 |
[백준] 1654 랜선자르기 python (0) | 2021.04.28 |
[백준] 1504 특정한 최단 경로 python (0) | 2021.04.27 |