Notice
Recent Posts
Recent Comments
Archives
08-02 09:23
«   2025/08   »
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
관리 메뉴

줴림이 공부하줴림

[BAEKJOON] 10815. 숫자 카드 본문

Study/BAEKJOON

[BAEKJOON] 10815. 숫자 카드

줴림 2025. 7. 10. 14:39


[백준 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