몽상실현개발주의

[BOJ] 10815 / 숫자 카드 / Python 파이썬 본문

Algorithm PS/BOJ

[BOJ] 10815 / 숫자 카드 / Python 파이썬

migrationArc 2021. 6. 19. 14:05

[BOJ] 10815 / 숫자 카드 / Python 파이썬

[BOJ] 10815 / 숫자 카드 / Python 파이썬

https://www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

풀이

주어진 숫자만큼 이분탐색을 연속으로 하는 문제이다.

 

for 문 안에서 이분탐색을 진행하여 간단하게 풀었다.

 

N = int(input())
cards = list(map(int, input().split()))
cards.sort()

M = int(input())
nums = list(map(int, input().split()))

for n in nums:
    start = 0
    end = N-1

    while start <= end:
        mid = (start+end)//2

        if cards[mid] == n:
            break

        if cards[mid] > n:
            end = mid - 1
        else:
            start = mid+1
    if cards[mid] == n:
        print(1, end=" ")
    else:
        print(0, end=" ")
Comments