10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
코드
n = int(input())
s = set(map(int, input().split()))
m = int(input())
for i in map(int, input().split()):
if i in s:
print(1, end=" ")
else:
print(0, end=" ")
숫자 카드의 수들을 집합에 넣고, 이 수를 갖고 있는지 없는지 찾아서 출력해주면 된다.
다른 방법으로는 이분탐색을 이용하는 방법이 있다. 바로 2번째 줄이 나온 숫자 카드들을 오름차순 정렬하고 이분탐색을 이용하여 숫자카드들에 원하는 숫자가 있는지 찾는 것이다.
n = int(input())
cards = sorted(list(map(int, input().split())))
def bs(target):
s, e = 0, n-1
while s <= e:
mid = (s+e)//2
if cards[mid] == target:
return 1
elif cards[mid] < target:
s = mid+1
else:
e = mid-1
return 0
m = int(input())
for t in map(int, input().split()):
print(bs(t), end=" ")
'문제풀이 > 자료구조' 카테고리의 다른 글
[Python/파이썬] 백준 1021번 회전하는 큐 (1) | 2024.05.01 |
---|---|
[Python/파이썬] 백준 29813번 최애의 팀원 (0) | 2024.04.04 |
[Python/파이썬] 백준 9536번 여우는 어떻게 울지? (0) | 2024.03.06 |
[Python/파이썬] 백준 12789번 도키도키 간식드리미 (0) | 2024.03.05 |
[Python/파이썬] 백준 5397번 키로거 (0) | 2024.01.14 |