Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- pytest
- Unit Testing
- ws
- Python
- greedy
- Django
- postreSQL
- TDD
- Stack
- Q objects
- dictionary
- Programmers
- stateful
- Gunicorn
- stack&que
- SQL
- codecov
- utils
- HTTP 완벽 가이드
- permutations
- 백준
- stateless
- Query
- combinations
- Git
- Bruteforce
- was
- algorithm
- AWS
- ORM
Archives
- Today
- Total
해피 코딩!
[백준] 10816번 숫자카드 2 본문
문제링크
해답 코드
import collections
dic = collections.defaultdict(int)
n = int(input())
card_lst = list(map(int, input().split()))
m = int(input())
find_card = list(map(int, input().split()))
for i in card_lst:
dic[i] += 1
answer = []
for i in find_card:
if dic.get(i):
answer.append(dic.get(i))
elif not dic.get(i):
answer.append(0)
print(' '.join(map(str, answer)))
문제풀이
숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.
두 번째로 받는 입력에서 상근이가 받은 카드를 저장해야 하는 문제입니다.
네 번째 입력에서 상근이가 저장한 카드의 갯수를 확인하는 과정이 필요하기에
orderdict
를 사용해서 미리 카운팅을 한 값을 다시 반복문을 통하여 확인합니다.
시간 복잡도를 해결할 수 있는 방법으로는 두 번쨰 리스트에서 값을 저장한 뒤
네 번째 입력에서 각각의 값을 받게 되는 반복문을 돌리며 값이 dic
에 있다면 answer
에 카드의 갯수를 입력하게 되면 복잡도를 해결할 수 있을거라 생각합니다.
'알고리즘' 카테고리의 다른 글
[백준] 17298 오큰수 (0) | 2021.01.06 |
---|---|
[백준] 9012번 괄호 (0) | 2021.01.06 |
[백준] 1541번 잃어버린 괄호 (0) | 2021.01.01 |
[백준] 2108 통계학 (0) | 2020.12.31 |
[백준] 11399 ATM (0) | 2020.12.31 |
Comments