728x90
반응형
from collections import Counter
N=int(input())
list1=list(map(int,input().split(' ')))
list1.sort()
M=int(input())
list2=list(map(int,input().split(' ')))
count=Counter(list1)
for i in range(len(list2)):
if(list2[i] in count):
print(count[list2[i]],end=' ')
else:
print(0,end=' ')
10815랑 비슷한 문제
처음에 무지성 for문 했다가 오류날 것 같아서
list.count(3) 함수를 통해 리스트 안의 요소를 세어 출력했다.
그런데 시간 초과가 났다.
모두 탐색해서 그런걸까?
이진탐색을 사용해 N에 정수가 들어있을 때만 count하기로 했다.
그런데 또 시간 초과 오류가 났다.
그렇게 찾아보던 도중..
파이썬 collections 모듈의 내장 함수 Counter을 이용하면 풀린다는 것을 보았다
Counter는 리스트의 원소를 원소:개수 꼴로 딕셔너리 형태로 저장한다
그렇게해서 출력을 하니 시간초과 없이 통과할 수 있었다
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
10828 스택 파이썬 풀이 (0) | 2022.09.02 |
---|---|
11054번 바이토닉 부분 수열 알고리즘 (0) | 2022.08.29 |
백준 1620번 나는야 포켓몬 마스터 이다솜 파이썬 풀이 시간 초과 해결 (0) | 2022.08.19 |
백준 14425번 문자열 집합 문제 파이썬 풀이 시간 초과 (0) | 2022.08.19 |
백준 10815 파이썬 숫자 카드 문제 시간초과 해결 이진탐색 (0) | 2022.08.14 |