N개의 숫자 카드 목록이 주어지고 M가의 찾을 카드가 주어지면
각각의 찾을 카드 별로 숫자 카드 목록에서 몇 개가 있는지 출력하는 문제입니다!
이 문제를 처음 봤을 때 정렬을 해서 풀어야하나 고민이 들었는데요
숫자 카드의 개수(카드 목록의 길이)의 최대 값이 500000이라 단순히 정렬을 탐색하면 시간 초과가 날 거 같았습니다!
그래서 단순히 동일한 카드의 개수를 찾는 문제이니 해시를 이용해 시도를 해보았고
결과는 성공이였습니다😁
전체 코드
from collections import Counter
import sys
N = int(sys.stdin.readline().strip())
cardList = Counter(list(map(int, sys.stdin.readline().strip().split())))
M = int(sys.stdin.readline().strip())
numList = list(map(int, sys.stdin.readline().strip().split()))
print(" ".join([ str(cardList[item]) for item in numList]))
문제를 풀고 해당 문제의 분류를 알고 싶어서 검색을 한 결과
해당 문제의 분류는 '이분 탐색'인 거 같습니다!
이분 탐색 복습할 겸 다시 풀어볼 예정입니다ㅎㅎ
'PS > Python' 카테고리의 다른 글
[백준] 13460 - 구슬 탈출 2 (파이썬, Python) (0) | 2021.04.03 |
---|---|
[백준] 13305 - 주유소 (파이썬, Python) (0) | 2021.03.31 |
[백준] 15650 - N과 M (2) (파이썬, Python) (0) | 2021.03.30 |
[백준] 15649 - N과 M (1) (파이썬, Python) (0) | 2021.03.27 |
2020 카카오 인턴십_수식 최대화(파이썬, Python) (0) | 2021.02.14 |