부품찾기

최대 1 분 소요

부품찾기

해결방법

이 문제는 이진탐색 알고리즘을 알고있으면 쉽게 풀 수 있는 문제다.

n = int(input())
have = list(map(int, input().split()))

m = int(input())
needs = list(map(int, input().split()))


def check(val, have, start, end):
    while start <= end:
        mid = (start + end) // 2
        if have[mid] == val:
            return True
        elif val < have[mid]:
            end = mid - 1
        else:
            start = mid + 1
    return False


have.sort() # 이진탐색 하기위해 정렬
for need in needs:
    if check(need, have, 0, len(have)):
        print("yes")
    else:
        print("no")

set()을 이용한 방법
N = 5
parts = [8, 3, 7, 9, 2]
parts = set(all_parts)

M = 3
orders = [5,7,9]

for order in orders:
    if order in parts:
        print('yes', end=" ")
    else:
        print('no', end=" ")

댓글남기기