반응형
문제
간단한 문제로 입력으로 들어온 배열에 대해 K 번 이상 등장하는 요소를 추출하는 문제입니다.
1. array = [1,1,1,2,2,3], K = 2
=> [1,2]
풀이
먼저 배열의 각 원소를 세야할 것 같습니다. for 루프를 이용해도 되지만 collections 모듈에는 배열의 빈도 수를 계산해주는 Counter 라는 함수가 존재합니다. Counter 함수는 해당 원소를 키, 빈도 수를 값으로 하는 딕셔너리를 return합니다.
K번 이상 등장하는 원소를 추출하는 것이니 빈도 수가 가장 높은 것부터 K까지 추출하면 될 것 같습니다. 우선순위 순으로 추출하므로 파이썬의 heapq 모듈을 활용하면 될 것 같습니다.
kaggle.com의 notebook으로 작성한 풀이는 다음과 같습니다.
홍머스 정리
- 난이도: 하
참조
- <파이썬 알고리즘 인터뷰>, p307-309
- leetcode.com/problems/top-k-frequent-elements/
반응형
'Computer > Coding Test' 카테고리의 다른 글
코딩테스트 문제 (14) - 다트 게임 (0) | 2021.02.25 |
---|---|
코딩테스트 문제 (13) - 부분 집합 (0) | 2021.02.25 |
코딩테스트 문제 (11) - 비밀 지도 (0) | 2021.02.24 |
코딩테스트 문제 (10) - 배열의 K 번째 큰 요소 (0) | 2021.02.24 |
코딩테스트 문제 (9) - 효율적인 화폐구성 (0) | 2021.02.24 |