반응형
https://level.goorm.io/l/challenge/goormthon-challenge
문제
풀이
n,k = map(int,input().split())
arr = list(map(int,input().split()))
def num_sort(arr):
"""
숫자와 이진수로 변환했을때 1의 갯수가 튜플 형태로 저장된 리스트 출력
"""
answer = []
for i in range(len(arr)):
one = 0
num = arr[i]
while num != 0: #이진수에서 1의 갯수를 구하기
one += num%2 # 나누었을때 1라면 더하기
num = num//2
answer.append((arr[i],one))
return answer
res = num_sort(arr)
res = sorted(res,key = lambda x : (x[1],x[0]), reverse = True) # 처음에는 x[1]의 값으로 정렬 후 x[0]의 값으로 재정렬
print(res[k-1][0]) # k번째 위치에 있는 x[0]을 요구하는게 답
1. 주어진 배열에서 이진수로 나타냈을때, 1의 개수를 one이라는 변수로 저장
2. 기존 값과 one을 튜플로 저장해서 answer이란 리스트에 저장
3. answer에서 x[1](one의 값)을 기준으로 정렬 후 x[0](기존 값)으로 재정렬
4. k 번째 위치에 있는 x[0](기존 값) 출력
반응형
'알고리즘' 카테고리의 다른 글
[구름톤 챌린지] Day 7 - 구름 찾기 깃발 (0) | 2023.08.23 |
---|---|
[구름톤 챌린지] Day 6 - 문자열 나누기 (0) | 2023.08.21 |
[구름톤 챌린지] Day 4 - 완벽한 햄버거 만들기 (0) | 2023.08.17 |
[프로그래머스/Lv.2] 튜플_2019 카카오 개발자 겨울 인턴십 (0) | 2023.06.03 |
[프로그래머스/Lv.1] 실패율_2019 KAKAO BLIND RECRUITMENT (0) | 2023.06.03 |