https://www.acmicpc.net/problem/1920
문제
N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.
해결
첫 번째 시도 : 웅? 쉬운데..? → 하지만 시간 초과
import sys
n = int(sys.stdin.readline())
list_n = list(map(int, sys.stdin.readline().split()))
m = int(sys.stdin.readline())
list_m = list(map(int, sys.stdin.readline().split()))
for i in list_m:
if i in list_n:
print(1)
else:
print(0)
이분 탐색을 써야겠다! → 성공
import sys
n = int(sys.stdin.readline())
n_list = list(map(int, sys.stdin.readline().split()))
n_list.sort()
m = int(sys.stdin.readline())
targets = list(map(int, sys.stdin.readline().split()))
for target in targets:
left = 0
right = n-1
while left <= right:
mid = (left + right) // 2
if n_list[mid] == target:
print(1)
break
elif n_list[mid] > target:
right = mid -1
else:
left = mid + 1
if left > right:
print(0)
'Algorithm > Sorting' 카테고리의 다른 글
[Python] 백준 10825번 국영수 (0) | 2023.10.27 |
---|---|
[Python] 백준 10867 중복 빼고 정렬하기 (0) | 2022.06.02 |
[Python] 백준 3273번 두 수의 합 (0) | 2022.06.01 |
댓글