Top K Frequent Elements - LeetCode
Can you solve this real interview question? Top K Frequent Elements - Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2]
leetcode.com
문제
배열에서 가장 많이 출현한 원소를 k개 반환해라
과정
- collections 모듈의 Counter 클래스를 사용해 리스트에서의 원소의 개수를 구한다.
- for문을 이용해 리스트로 출력한다.
입력
[1,1,1,2,2,3]
출력
2
풀이
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
ans = collections.Counter(nums).most_common(k)
answer = []
for i in (ans):
answer.append(i[0])
return answer
한 줄씩 코드 해석해보기
ans = collections.Counter(nums).most_common(k)
- Counter(nums).most_common(k)을 이용해 입력받은 nums 리스트 중 가장 많이 등장한 숫자들을 k개 저장한다.
- 예제를 입력하면 ans 에는 [(1,3), (2,2)] 값이 저장된다.
answer = []
for i in (ans):
answer.append(i[0])
return answer
- 정답을 출력할 리스트를 만든 후 ans의 첫번째 값을 넣어준다.
한 줄 풀이
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
return [i[0] for i in Counter(nums).most_common(k)]
'코딩 테스트 (Python) > 리트코드' 카테고리의 다른 글
[리트코드] 1464. 배열의 두 요소의 최대 곱 (Python) (1) | 2024.01.06 |
---|---|
[리트코드] 215. 배열의 K번째 큰 요소 (Python) (1) | 2024.01.06 |
[리트코드] 3. 중복 문자가 없는 가장 긴 부분 문자열 (Python) (0) | 2024.01.05 |
[리트코드] 771. 보석과 돌 (Python) (0) | 2024.01.05 |
[리트코드] 739. 일일 온도 (Python) (0) | 2024.01.04 |