반응형
https://www.acmicpc.net/problem/10815
from bisect import bisect_left, bisect_right
n = int(input())
cards = list(map(int, input().split()))
cards.sort() # 이진탐색 전에 정렬은 필수.
m = int(input())
ans = []
query = list(map(int, input().split()))
for q in query:
l = bisect_left(cards, q)
r = bisect_right(cards, q)
# 또다른 방법으로, if cards[l] == q 이면 1
ans.append(1 if r - l > 0 else 0) # 아니면 1 if r - l else 0
print(*ans)
역시 이진탐색 감 좀 잡으면 다시 보고 수정하라고 올려둡니다.
반응형
'알고리즘 🤔' 카테고리의 다른 글
[백준 파이썬 11051] 이항 계수 2 (실버 2) (0) | 2023.01.11 |
---|---|
[백준 파이썬 2748] 피보나치 수 2 (브론즈 1) (0) | 2023.01.11 |
[백준 파이썬 2512] 예산 (0) | 2023.01.10 |
[백준 파이썬 2309] 일곱 난쟁이 (0) | 2023.01.10 |
[백준 파이썬 1302] 베스트셀러 (0) | 2023.01.10 |