10815번 : 숫자 카드

김민관·2021년 10월 5일

백준_Silver

목록 보기
6/57

문제보기

파이썬

N = int(input())  # 가지고 있는 숫자 카드 개수
number = list(map(int, input().split()))  # 현재 보유중인 숫자 카드
M = int(input())  # 구분해야할 숫자카드의 개수
compare = list(map(int, input().split()))  # 비교해야할 숫자 카드
number.sort()


def binary_search(number, target, start, end):
    while start <= end:
        mid = (start + end) // 2
        if number[mid] == target:
            return 1
        elif number[mid] > target:
            end = mid - 1
        else:
            start = mid + 1
    return 0


for i in range(M):
    target = compare[i]
    print(binary_search(number, target, 0, len(number)-1), end=' ')

코드 설명

  • 이진 탐색을 위한 개념 그대로의 이진 탐색 함수 만들기
  • 비교할 숫자가 들어있는 배열에서 한개씩 꺼내 이진 탐색으로 확인하기

포인트

이진 탐색을 이해하고 있는지 아닌지를 확인하는 기본 문제

profile
게임 개발일지 & IT 소식들 공유

0개의 댓글