줴림이 공부하줴림
[BAEKJOON] 10815. 숫자 카드 본문
[백준 10815번: 숫자 카드]
👉 https://www.acmicpc.net/problem/10815
이번 문제도 탐색 문제였다. 전에 풀었던 '1920. 수 찾기' 문제와 별 다를 바가 없었다. 그냥 똑같은 알고리즘을 사용했더니 금방 해결 가능했다.
'''
[문제] 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다.
정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.
[예제 입력]
5 → 상근이가 가지고 있는 숫자 카드 개수
6 3 2 10 -10 → 상근이가 가지고 있는 숫자 카드
8 → 숫자 카드 개수
10 9 -5 2 3 4 5 -10 → 숫자 카드
[예제 출력]
1 0 0 1 1 0 0 1
'''
def binary_search(arr, target):
left = 0
right = len(arr)-1
while left <= right:
mid = (left+right)//2
if arr[mid] == target:
return True
elif arr[mid] < target:
left = mid+1
else:
right = mid-1
return False
N = int(input())
N_arr = list(map(int, input().split()))
N_arr.sort()
M = int(input())
M_arr = list(map(int, input().split()))
count = [] # 기록용 리스트
for target in M_arr:
if binary_search(N_arr, target):
count.append(1)
else:
count.append(0)
print(*count)
[구현 시도 중 놓친 부분들]
- 1920번 문제랑 다르게, 출력 형태가 한 줄이어서 리스트를 따로 만들어서 'print(*count)'로 결과를 출력했다.
- 이진 탐색 알고리즘이 갑자기 다시 기억이 나지 않아서 한참 고민하다가 작성했다. 이진 탐색 알고리즘에 하루빨리 익숙해져야 할 것 같은데.
'Study > BAEKJOON' 카테고리의 다른 글
[BAEKJOON] 10845. 큐 (0) | 2025.07.10 |
---|---|
[BAEKJOON] 10828. 스택 (2) | 2025.07.10 |
[BAEKJOON] 2750. 수 정렬하기 (4) | 2025.07.09 |
[BAEKJOON] 1920. 수 찾기 (1) | 2025.07.09 |
[BAEKJOON] 2644. 촌수계산 (0) | 2025.06.06 |