SortByBits
Published at 2021-08-09
class Solution:
def sortByBits(self, arr: List[int]) -> List[int]:
cntList = []
answer= []
def getNumberOfOne(num): # 어떤 십진수 n이 이진수일때 1 갯수 반환
# 2로 나눠서 나머지가 1이다? 이진수에서 1개수 증가시킴됨
cnt = 0
while num > 0:
cnt += num % 2
num = num//2 # 몫을 그 다음 피제수로
return cnt
arr.sort() # 일단 한 번 정렬
for n in arr:
cntList.append([n,getNumberOfOne(n)])
cntList.sort(key=lambda x: x[1])
for cnt in cntList:
answer.append(cnt[0])
return answer