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

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net


내 풀이

from collections import defaultdict

def solution():
    n=int(input())
    lists = list(map(int,input().split()))
    m = int(input())
    candi = list(map(int,input().split()))
    number_of_candi=defaultdict(int)
    
    for i in lists:
        number_of_candi[i] +=1
    for i in candi:
        if i in number_of_candi:
            print(number_of_candi[i],end=' ')
        else:
            print(0,end=' ')
        
        
    
solution()

 

 


딱 보자마자 생각난건 defaultdict였다.

하나 실수한게 candi에 있는걸 lists 로 추적하면 갯수가 안맞는다. 가령 10을 추적하면 1번 밖에 안나올것이다.

CANDI와 Lists에 공통적으로 존재하는 숫자의 갯수를 찾는거기때문에

lists에 있는걸 defaultdict에 넣고, 그걸 반대로 candi로 추적해야한다.


다른사람의 풀이

 



 

'취준 > 백준' 카테고리의 다른 글

2504 - 파이썬  (0) 2022.11.17
1939(중량제한) - 파이썬  (0) 2022.11.01
1806(부분합) - 파이썬  (0) 2022.10.24
1238 - 파이썬  (0) 2022.10.24
25755 - 파이썬  (0) 2022.10.21

+ Recent posts