본문 바로가기
알고리즘

백준_10816_숫자카드2(Counter)

by 매화of사군자 2020. 2. 20.

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이수도 -10,00

www.acmicpc.net

해결 방법

> collections의 Counter를 이용한다.

 

Counter

https://excelsior-cjh.tistory.com/94

 

collections 모듈 - Counter

collections.Counter() 컨테이너에 동일한 값의 자료가 몇개인지를 파악하는데 사용하는 객체이다. docs.python.org에서 Counter함수에 대해 자세히 알아볼 수 있다. A Counter is a dict subclass for counting h..

excelsior-cjh.tistory.com

  Counter count()
접근시간 O(1) O(N)
N번 접근 O(N) O(N^2)

 

코드

더보기

from collections import Counter

import bisect

 

num = int(input())

a = list(map(int,input().split()))

num2 = int(input())

b = list(map(int,input().split()))

 

c= Counter(a)

 

for i in b:

    print(c[i], end=' ')

댓글