Notice
Recent Posts
Recent Comments
Link
오늘도 개발
위코드 코드카타 Week2 Day4 - 자주 등장한 숫자 k번째까지 반환 본문
문제
nums는 숫자로 이루어진 배열입니다.
자주 등장한 숫자를 나열했을 때 k번째까지 리스트에 담아 반환하세요.
nums = [4,4,4,5,5,7], k = 2이면
return [4,5]
내가 해결한 방식
def top_k(nums, k):
counts = {}
# 키로 사용할 값 추출
unique_nums = set(nums)
# counts 딕셔너리에 '숫자:숫자의 반복 횟수' 저장
for num in unique_nums:
counts[num] = nums.count(num)
# nums 요소를 자주 반복된 요소부터 덜 반복된 요소 순으로 정렬
# (counts 딕셔너리의 키를, 값을 기준으로 정렬하고, 역순으로 다시 정렬한 리스트 생성)
sorted_counts = sorted(counts, key=counts.get, reverse=True)
# 정렬된 리스트에서 k번째 값까지만 남김
return sorted_counts[:k]
'자료구조 & 알고리즘 > 위코드 코드카타' 카테고리의 다른 글
| 위코드 코드카타 Week5 Day4 - 연결리스트(Linked List) (0) | 2022.08.31 |
|---|---|
| 위코드 코드카타 Week5 Day3 - 재귀 (0) | 2022.08.03 |
| 위코드 코드카타 Week3 Day5 - 팩토리얼 구하기 (0) | 2022.07.22 |
| 위코드 코드카타 Week3 Day2 - 새 배열 만들지 말고 리스트 뒤집기 (0) | 2022.07.19 |
| 위코드 코드카타 Week1 Day1 - 배열에서 합하면 sum이 되는 두 숫자 반환 (0) | 2022.07.04 |