Mo!
[구름톤 챌린지] 5일차 - 문제 5. 이진수 정렬 (Python) 본문
Coding Test

[구름톤 챌린지] 5일차 - 문제 5. 이진수 정렬 (Python)

5사 2023. 8. 20.
 

구름LEVEL

난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.

level.goorm.io


문제 5. 이진수 정렬

해당 문제는 주어진 데이터를 조건에 맞게 변형한 후, 다중 조건에 맞추어 정렬하는 문제입니다. 현대 모비스 알고리즘 대회 변형 문제입니다.

 

 

N, K = map(int, input().split())
alist = list(map(int, input().split()))

def binary_count(a):
	return str(format(a, 'b')).count("1")

alist.sort(reverse=True, key=lambda x:(binary_count(x), x))

print(alist[K-1])
  • format()을 통해서 10진수 정수를 2진수로 간단하게 변환할 수 있다.
  • sort()에 key 값을 이용해서 문제의 조건에 맞게 2진수에 포함된 1의 개수 기준, 1의 개수가 같을 시 원래 10진수를 기준으로 내림차순 정렬을 해주었다.
Comments