Coding Test
[구름톤 챌린지] 5일차 - 문제 5. 이진수 정렬 (Python)
5사
2023. 8. 20. 00:49
구름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진수를 기준으로 내림차순 정렬을 해주었다.