문제 풀이/백준
[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=' ')
딕셔너리를 사용하니 바로 해결되었다.
반응형