본문 바로가기

Computer/Coding Test

코딩테스트 문제 (12) - 상위 K 빈도 요소

반응형

문제

간단한 문제로 입력으로 들어온 배열에 대해 K 번 이상 등장하는 요소를 추출하는 문제입니다.

1. array = [1,1,1,2,2,3], K = 2
=> [1,2]

풀이

먼저 배열의 각 원소를 세야할 것 같습니다. for 루프를 이용해도 되지만 collections 모듈에는 배열의 빈도 수를 계산해주는 Counter 라는 함수가 존재합니다. Counter 함수는 해당 원소를 키, 빈도 수를 값으로 하는 딕셔너리를 return합니다.

K번 이상 등장하는 원소를 추출하는 것이니 빈도 수가 가장 높은 것부터 K까지 추출하면 될 것 같습니다. 우선순위 순으로 추출하므로 파이썬의 heapq 모듈을 활용하면 될 것 같습니다.

kaggle.com의 notebook으로 작성한 풀이는 다음과 같습니다.

 

홍머스 정리

  • 난이도: 하

참조

반응형