동까의 코딩

[Python] 백준 10816 : 숫자 카드 2 본문

문제 풀이/백준

[Python] 백준 10816 : 숫자 카드 2

동까의 코딩 2024. 3. 30. 20:54
반응형

오늘의 문제 중 하나인 숫자 카드 2 문제를 풀어보았다.

 

문제만 읽고 답변을 작성하니 처음엔 쉽다..라는 생각이 들고 제출하니 시간초과가 나왔다....

 

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

 

10816번: 숫자 카드 2

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

www.acmicpc.net

 

N, num_list = int(input()), list(map(int, input().split()))
M, cnt_list = int(input()), list(map(int, input().split()))

for num in cnt_list:
    print(num_list.count(num), end=' ')

간단하게 끝나나 했더니 시간초과..... 그래서 찾다보니 딕셔너리를 이용해서 풀면 시간이 단축된다고 한다.

 

키 값을 입력받은 숫자로 정해주고, 딕셔너리에 밸류 값에 카운트를 해줘서 바로 답을 도출하는 방법을 사용했다.

 

N, num_list = int(input()), list(map(int, input().split()))
M, cnt_list = int(input()), list(map(int, input().split()))

num_list.sort()

dic = {}

for x in num_list:
    if x in dic:
        dic[x] += 1
    else:
        dic[x] = 1

for x in cnt_list:
    if x in dic:
        print(dic[x], end=' ')
    else:
        print('0', end=' ')

 

딕셔너리를 사용하니 바로 해결되었다.

반응형