자료구조 이용
import sys
input = sys.stdin.readline
n = int(input())
# 시간을 줄여야 하므로 list 사용하기보다 dictionary 자료형 이용
num_count = {}
for card in map(int,input().split()):
if card in num_count:
num_count[card] += 1
else:
num_count[card] = 1
m = int(input())
ans = []
for i in map(int, input().split()):
ans.append(num_count[i] if i in num_count else 0)
print(*ans)
이분탐색 라이브러리(bisect) 이용
from bisect import bisect_left, bisect_right
n = int(input())
sang = [*map(int, input().split())]
m = int(input())
card = [*map(int, input().split())]
sang.sort()
result = []
for i in card:
result.append(bisect_right(sang,i) - bisect_left(sang,i)) # bisect_left는 찾는 값이 리스트에 있을 때 해당 값의 인덱스 반환, bisect_right는 찾는 값이 리스트에 있을 때 해당 값의 인덱스 + 1 반환
print(*result)
'백준' 카테고리의 다른 글
[백준] 1654번 랜선 자르기 파이썬 코드 (0) | 2023.09.06 |
---|---|
[백준] 2512번 예산 파이썬 코드 (0) | 2023.09.05 |
[백준] 1072번 게임 파이썬 코드 (0) | 2023.09.05 |
[백준] 2805번 나무 자르기 파이썬 코드 (0) | 2023.09.05 |
[백준] 1920번 수 찾기 파이썬 코드 (0) | 2023.09.04 |