[알고리즘] 자주 등장하는 숫자
오늘의 문제
nums는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k 개수만큼 return해주세요.
nums = [1,1,1,2,2,3],
k = 2
return [1,2]
nums = [1]
k = 1
return [1]
개념
- 각 숫자의 개수를 카운팅해서 '숫자:개수'의 딕셔너리 생성
- 그 중 가장 values의 가장 큰 값의 key 부터 k 만큼 result에 insert
나의 풀이
def top_k(nums, k):
dict = {}
result = []
# 숫자:개수 딕셔너리 생성
for v in nums:
if v not in dict.keys():
dict[v] = 1
else:
dict[v] += 1
for _ in range(k):
key = 0
max = 0
# 가장 큰 value를 찾아서 result에 insert
for k,v in dict.items():
if v > max:
max = v
key = k
result.append(key)
# 해당 데이터 제거
dict.pop(key)
return result
print(top_k([1,1,1,2,2,3],2))
Author And Source
이 문제에 관하여([알고리즘] 자주 등장하는 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@gyuseok-dev/TIL-Codekatamonth11-day12
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def top_k(nums, k):
dict = {}
result = []
# 숫자:개수 딕셔너리 생성
for v in nums:
if v not in dict.keys():
dict[v] = 1
else:
dict[v] += 1
for _ in range(k):
key = 0
max = 0
# 가장 큰 value를 찾아서 result에 insert
for k,v in dict.items():
if v > max:
max = v
key = k
result.append(key)
# 해당 데이터 제거
dict.pop(key)
return result
print(top_k([1,1,1,2,2,3],2))
Author And Source
이 문제에 관하여([알고리즘] 자주 등장하는 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gyuseok-dev/TIL-Codekatamonth11-day12저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)