

[처음 시도]
N = int(input())
li1 = sorted(list(map(int, input().split())))
M = int(input())
li2 = list(map(int, input().split()))
# print(li1)
for i in li2 :
if i in li1 :
print(1, end=' ')
else :
print(0, end=' ')
-> 시간 초과 발생
[맞은 코드]
N = int(input())
li1 = list(map(int, input().split()))
M = int(input())
li2 = list(map(int, input().split()))
li1.sort()
# print(li1)
for i in li2 :
lt, rt = 0, N-1
isExist = False
while lt <= rt :
mid = (lt + rt) //2
if i == li1[mid]:
isExist=True
print(1, end = ' ')
break
elif i > li1[mid] :
lt = mid + 1
else :
rt = mid - 1
if not isExist :
print(0, end = ' ')
혹시나 하고 이중탐색으로 코드 구현을 해보았더니 성공!
이중탐색을 해야만 하는 문제였다.
'알고리즘 공부' 카테고리의 다른 글
[백준 2167번] 2차원 배열의 합 python (0) | 2024.08.05 |
---|---|
[백준 7785번] 회사에 있는 사람 python (0) | 2024.08.01 |
[백준 2563번] 색종이 python (0) | 2024.08.01 |
[programmers] 타겟 넘버 (0) | 2024.07.24 |
[백준 2583번] 영역 구하기 python (0) | 2024.07.23 |