728x90
반응형
10816번: 숫자 카드 2
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
구현 언어: 파이썬
import sys
input = sys.stdin.readline
n = int(input())
n_list = list(map(int, input().split()))
m = int(input())
m_list = list(map(int, input().split()))
dic = dict()
for i in n_list:
try:
dic[i] += 1
except:
dic[i] = 1
for i in m_list:
try:
print(dic[i], end=" ")
except:
print(0, end=" ")
시도 횟수: 2
구현 포인트:
시간 초과가 가장 큰 변수였다.
이분탐색으로 구현했을 때도 시간 초과가 나와서 엄청 당황했다.
그래서 구현한 방법은 우선 선형탐색으로 각 수의 개수를 세어 딕셔너리에 저장한 후,
결과에서는 딕셔너리에서 바로 빼서 출력만 해주는 방식이다.
try, except 문법적인 부분만 알고 있다가 처음 써봤는데 참 간결하고 유용하네
728x90
반응형
'Archive > BOJ' 카테고리의 다른 글
백준 15829번: Hashing (0) | 2021.02.15 |
---|---|
백준 11723번: 집합 (0) | 2021.02.14 |
백준 9012번: 괄호 (0) | 2021.02.14 |
백준 10866번: 덱 (0) | 2021.02.14 |
백준 10845번: 큐 (0) | 2021.02.14 |