데일리 커밋
[백준]
snape
2022. 1. 15. 23:43
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
첫 번째 시도!
시간오류나서 실패!
왜 오류일까를 한참 고민하다가 생각나는 것은 바로...
시간복잡도!!
이제는 문제 풀 때 알고리즘을 고려해서 풀어야겠다.
a = int(input())
a_1 = list(map(int,input().split()))
b = int(input())
b_1 = list(map(int,input().split()))
for i in b_1:
if i in a_1:
print(1)
else:
print(0)
두 번째 시도!
n = int(input())
n_list = list(map(int, input().split(' ')))
n_list.sort()
m = int(input())
targets = list(map(int, input().split(' ')))
def binary(target):
left = 0
right = n - 1
while left <= right:
mid = (left + right) // 2
if n_list[mid] == target:
return True
if target < n_list[mid]:
right = mid-1
elif target > n_list[mid]:
left = mid + 1
for i in range(m):
if binary(targets[i]):
print(1)
else:
print(0)