꿈꾸는 개발자의 블로그
[백준] Python - 10816 숫자 카드 2 본문
문제 링크
https://www.acmicpc.net/problem/10816
문제 풀이
처음에는 상근이가 가지고 있는 숫자 카드 리스트의 개수를 count 함수를 사용하여 구하려 하였지만, 시간 초과가 발생했다. 그래서 알게된 것이 Counter 모듈이다. 또 다른 풀이 방법으로 Dictionary를 사용하여 개수를 카운트 해주었다.
1. Counter
2. Dictionary
전체 코드
1. Counter 사용
from collections import Counter
import sys
input = sys.stdin.readline
n = int(input()) # 상근이가 가지고 있는 숫자 카드 개수
nums = list(map(int, input().split()))
m = int(input())
check_nums = map(int, input().split())
cards = Counter(nums)
result = []
for i in check_nums:
result.append(cards[i])
print(*result)
2. Dictionary 사용
from collections import defaultdict
import sys
input = sys.stdin.readline
n = int(input()) # 상근이가 가지고 있는 숫자 카드 개수
nums = list(map(int, input().split()))
m = int(input())
check_nums = map(int, input().split())
dic = defaultdict(int)
for i in nums :
dic[i] += 1
for i in check_nums :
if i in dic :
print(dic[i], end=' ')
else :
print(0, end=' ')
시간 초과된 코드
더보기
import sys
input = sys.stdin.readline
n = int(input()) # 상근이가 가지고 있는 숫자 카드 개수
nums = list(map(int, input().split()))
m = int(input())
check_nums = map(int, input().split())
for x in check_nums :
print(nums.count(x), end=' ')
728x90
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] Python - 17413 단어 뒤집기2 (0) | 2022.09.18 |
---|---|
[백준] Python - 21920 서로소 평균 (0) | 2022.09.16 |
[백준] Python - 10989 수 정렬하기 3 (0) | 2022.08.08 |
[백준] Python - 1931 회의실 배정 (0) | 2022.06.07 |
[백준] Python - 17609 회문 (0) | 2022.06.04 |
Comments