728x90
반응형
✏️ 문제
✏️ 풀이
1920 수찾기 문제와 완전하게 동일한 문제였다. 해당 문제의 해설과 이진탐색에 대한 설명은 여기를 참고
(Python)
N=int(input())
card=list(map(int,input().split()))
card=sorted(card)
M=int(input())
target_list=list(map(int,input().split()))
def BS(array, target, start, end):
if start > end:
return 0
mid=(start+end)//2
if array[mid]==target:
return 1
elif array[mid]>target:
return BS(array, target, start, mid-1)
else:
return BS(array, target, mid+1, end)
for target in target_list:
print(BS(card, target, 0, N-1), end=' ')
재귀형태로 이진탐색을 구현하고 target_list로 선언한 탐색대상의 요소들을 for문으로 뽑아내 BS함수에 넣어가며 리턴되는 값을 프린트했다.
728x90
반응형
'프로그래밍 > 백준' 카테고리의 다른 글
백준 1654: 랜선자르기 해설- python (0) | 2022.02.05 |
---|---|
백준 10816: 숫자카드 2 해설- python (0) | 2022.02.01 |
백준 11053: 가장 긴 증가하는 부분 수열 해설- python (0) | 2022.01.31 |
백준 2579: 계단오르기 해설- python (0) | 2022.01.30 |
백준 2748번 런타임에러(IndexError) (0) | 2022.01.27 |