티스토리 뷰
📚 문제
입력
출력
예제 입력
5
6 3 2 10 -10
8
10 9 -5 2 3 4 5 -10
예제 출력
1 0 0 1 1 0 0 1
🧑🏻💻 풀이 과정
- 전형적인 이분탐색을 요구하는 문제.
- 비교할 카드를 0부터 비교할 카드의 길이 -1 동안 반복하며 상근이의 카드 중, 일치하는 카드가 나오면 1, 아니면 0을
ans
에 저장하자. join
을 이용해서 결과를 출력하자.- 여담으로 딕셔너리나 set을 이용해서도 풀 수 있다고 한다.
import sys
def binary_search(arr, target, start, end):
while start <= end:
mid = (start + end) // 2
if arr[mid] == target:
return 1
elif arr[mid] < target:
start = mid + 1
else:
end = mid - 1
return 0
N = int(sys.stdin.readline().rstrip())
cards = sorted(list(map(int, sys.stdin.readline().rstrip().split())))
M = int(sys.stdin.readline().rstrip())
check_cards = list(map(int, sys.stdin.readline().rstrip().split()))
card_len = len(cards) - 1
ans = []
for card in check_cards:
ans.append(binary_search(cards, card, 0, card_len))
print(" ".join(map(str, ans)))
'알고리즘' 카테고리의 다른 글
[algorithm] 백준 1755 - 숫자놀이 (파이썬) (0) | 2022.09.07 |
---|---|
[algorithm] 백준 1764 - 듣보잡 (파이썬) (0) | 2022.09.06 |
[algorithm] 백준 15702 - 중간고사 채점 (파이썬) (0) | 2022.09.04 |
[algorithm] 백준 25192 - 인사성 밝은 곰곰이 (파이썬) (0) | 2022.09.03 |
[algorithm] 백준 11899 - 괄호 끼어넣기 (파이썬) (0) | 2022.09.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코틀린
- 데이터베이스
- 정렬
- Real MySQL
- 파이썬
- 노마드코더
- MySQL
- 인프런
- webflux
- 북클럽
- 릿코드
- 스프링부트
- spring boot
- Algorithm
- 문자열
- 그리디
- 구현
- kotlin
- 노마드
- Spring
- mysql 8.0
- leetcode
- 자료구조
- 백준
- 스프링
- 리팩토링
- 스프링 부트
- 코테
- 알고리즘
- 김영한
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함