CodeKata Week2- Day4
문제
nums
는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k
개수만큼 return 해주세요.
nums = [1,1,1,2,2,3],
k = 2
return [1,2]
nums = [1]
k = 1
return [1]
내 풀이
def top_k(nums,k):
dict = {}
result = []
for num in nums:
dict[num] = nums.count(num) # 현재 딕셔너리 형태{8: 3, 7: 2, 3: 1}
for j in range(k):
max_length = max(dict, key = dict.get)
result.append(max_length)
dict.pop(max_length)
return result
print(top_k([8,8,8,7,7,3],2))
def top_k(nums,k):
dict = {}
result = []
for num in nums:
dict[num] = nums.count(num) # 현재 딕셔너리 형태{8: 3, 7: 2, 3: 1}
for j in range(k):
max_length = max(dict, key = dict.get)
result.append(max_length)
dict.pop(max_length)
return result
print(top_k([8,8,8,7,7,3],2))
dict.get 해당하는 키를 넣으면 value값을 뺴온다.
max(dict, key = dict.get)
=> value값을 기준으로 해서 제일 높은 key를 리턴한다.
새롭게 배운것
- max(dict)
딕셔너리의 최대 값을 가지는 key 구하기
- max(dict.values())
딕셔너리의 최대 값을 가지는 value 구하기
dicts = {"3": 1, "2": 2, "1": 3}
print("딕셔너리 dicts의 values를 이용한 최대 값 구하기: %d" % max(dicts.values()))
print("딕셔너리 dicts의 values를 이용한 최소 값 구하기: %d" % min(dicts.values()))
print("딕셔너리 dicts의 최대 값을 가지는 키 구하기: ", max(dicts))
print("딕셔너리 dicts의 최소 값을 가지는 키 구하기: ", min(dicts))
딕셔너리 dicts의 values를 이용한 최대 값 구하기: 3
딕셔너리 dicts의 values를 이용한 최소 값 구하기: 1
딕셔너리 dicts의 최대 값을 가지는 키 구하기: 3
딕셔너리 dicts의 최소 값을 가지는 키 구하기: 1
- dict.pop()
()안에 지우기를 원하는 요소의
- 딕셔너리의 get 함수
Tv = {'BreakingBad':100, 'GameOfThrones':1292, 'TMKUC' : 88}
print(Tv.get('BreakingBad'))
# 100
Tv.get('찾고자 하는 key', default)
딕셔너리의 최대 값을 가지는 key 구하기
딕셔너리의 최대 값을 가지는 value 구하기
dicts = {"3": 1, "2": 2, "1": 3}
print("딕셔너리 dicts의 values를 이용한 최대 값 구하기: %d" % max(dicts.values()))
print("딕셔너리 dicts의 values를 이용한 최소 값 구하기: %d" % min(dicts.values()))
print("딕셔너리 dicts의 최대 값을 가지는 키 구하기: ", max(dicts))
print("딕셔너리 dicts의 최소 값을 가지는 키 구하기: ", min(dicts))
딕셔너리 dicts의 values를 이용한 최대 값 구하기: 3
딕셔너리 dicts의 values를 이용한 최소 값 구하기: 1
딕셔너리 dicts의 최대 값을 가지는 키 구하기: 3
딕셔너리 dicts의 최소 값을 가지는 키 구하기: 1
()안에 지우기를 원하는 요소의
Tv = {'BreakingBad':100, 'GameOfThrones':1292, 'TMKUC' : 88}
print(Tv.get('BreakingBad'))
# 100
Tv.get('찾고자 하는 key', default)
선언된 dict에 key가 있으면, 그에 해당하는 value를 출력해준다.
default 값을 선언해주면 찾고자 하는 key가 없을때 default 값이 리턴된다.
- max함수 [max('', key=)]
예1) value를 기준으로 가장 큰 값의 key를 구할 때
Tv = {'BreakingBad':100, 'GameOfThrones':1292, 'TMKUC' : 88}
Keymax = max(Tv, key=Tv.get) #Tv의 value를 기준으로 가장 큰 값의 key 값을 구한다.
print(Keymax)
#GameOfThrones
key 함수를 값으로 넣는다. lambda를 사용할 수 있다. key= function을 기준으로 최대, 최솟값을 찾는다.
key가 하는 역할
max 함수의 key는 어떻게 아이템을 정렬시킬지 결정하는데 사용된다.
즉, 어떤 기준으로 max 값을 구할지를 정하는 거
예2) 절대값을 찾는 함수 abs를 key값으로 넣을때
min(-5, 3, 0, 3, -5, key=abs)
#0
nums = [-5, 3, 0, 3, -5]
max(nums, key=abs)
#-5
예3) 나머지를 구하는 lambda 식을 key 값으로 넣을 때
nums = [-5, 3, 0, 3, -5]
min(nums, key= lambda x : x%3 )
# 3
max(-5, 3, 0, 3, -5, key= lambda x : x%3 )
# -5
Author And Source
이 문제에 관하여(CodeKata Week2- Day4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jxxwon/CodeKata-Week2-Day4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)