문제 링크
동빈이네 전자 매장에 부품이 N개 있다. 각 부품은 정수 형태의 고유한 번호.
어느날 손님이 M개 종류의 부품을 대량으로 구매하겠다며 당일 날 견적서를 요청했다. 동빈이는 대를 놓치지 않고 손님이 문의한 부품 M개 종류를 모두 확인해서 견적서를 작성해야 한다. 이 때 가게 안에 부품이 모두 있는지를 확인하는 프로그램을 작성하시오.
부품 개수 : 1 ≤ N ≤ 1,000,000
문의한 부품 : 1 ≤ M ≤ 1,000,000
Test Case
입력
5
8 3 7 9 2
3
5 7 9
출력
no yes yes
문제 풀이
이진탐색 알고리즘으로도 풀 수 있고, 계수정렬로도 풀 수 있는데 set 자료구조로도 풀수 있는데 set 개념 기억해두려고 포스팅
Source Code
import sys
input = sys.stdin.readline
n = int(input())
bupum = list(map(int, input().split()))
m = int(input())
sonnim = list(map(int, input().split()))
def binary_search(arr,target,start,end):
if start > end :
return False
mid = (start+end) // 2
if arr[mid] > target :
return binary_search(arr,target,start,mid-1)
elif arr[mid] < target :
return binary_search(arr,target,mid+1,end)
else :
return True
bupum.sort()
for i in sonnim:
result = binary_search(bupum,i,0,n-1)
if result == True:
print("yes")
else :
print("no")
import sys
input = sys.stdin.readline
n = int(input())
bupum = set(map(int, input().split()))
m = int(input())
sonnim = list(map(int, input().split()))
for i in sonnim:
if i in bupum :
print("yes")
else :
print("no")
'Develop > algorithm' 카테고리의 다른 글
백준 1647번 도시 분할 계획 (Python) (0) | 2021.07.29 |
---|---|
이것이 코딩테스트다 미래도시 (Python) (0) | 2021.07.23 |
이것이 코딩테스트다 전보 (Python) (0) | 2021.07.23 |
프로그래머스 문자열 압축 (Python) (0) | 2021.07.14 |
코드업 4572 영역 구하기 (Python) (0) | 2021.07.09 |