https://www.acmicpc.net/problem/10816
채점하는데만 1분 30초는 걸려서 나 처음에 시간 초과 뜨는 줄^^,,
import sys
n = int(input())
card = sorted(map(int, sys.stdin.readline().split()))
m = int(input())
find = list(map(int, sys.stdin.readline().split()))
dict_card = dict()
for i in card:
if i in dict_card:
dict_card[i] += 1
else:
dict_card[i] = 1
for i in find:
if i in dict_card:
print(dict_card[i], end=' ')
else:
print(0, end=' ')
원래 이진탐색 -> 찾으면 앞뒤 인덱스 확인해가면서 같은 원소를 찾음
이렇게 하려고 했는데 복잡하고 비효율적임.. 내가 생각해도 이건 아니다 싶었다
딕셔너리를 이용해서 {값:개수} 형태로 저장하고 값을 찾으면 개수를 출력하게 했다
이진탐색을 이용하지 않아도 풀리는 문제다!
'알고리즘 > 백준' 카테고리의 다른 글
백준 2805: 나무 자르기 (Python) (0) | 2022.02.12 |
---|---|
백준 1654: 랜선 자르기 (Python) (0) | 2022.02.11 |
백준 1920: 수 찾기 (Python) (0) | 2022.02.10 |
백준 1707: 이분그래프 (Python) (0) | 2022.02.03 |
백준 7564: 나이트의 이동 (Python) (0) | 2022.02.03 |