PS

[구름톤 챌린지] 5일차 - 이전수 정렬 [Python]

kimyoungrok 2023. 8. 18. 15:04
728x90

goorm - 구름톤챌린지 5일차
goorm - 구름톤챌린지 5일차


풀이

1주차 문제 중 처음으로 정답률이 90% 아래로 떨어진 문제다.

아마도 2진수에 대한 이해와, 정렬 조건이 두개라는 부분에서 실수하는 듯 하다.

Python으로 풀이했기 때문에 단순히 bin으로 10진수를 2진수 문자열로 변환 후 '1'의 개수를 세주었다.

동시에, 1의 개수가 동일하다면 원래의 수를 기준으로 내림차순 정렬해야되기 때문에

(2진수 중 1의 개수, 원래 수) 라는 쌍으로 새로운 리스트를 만든 후 내림차순 정렬해주어 풀이했다.

결과로 입력받은 K번째 수의 원래수를 출력해주자.

만약, 이진수 중 1의 개수를 구해주는 내장함수가 없거나, 최적화 하고싶다면 아래와 같이 비트1의 개수를 구해주는 함수를 만들어서 풀이하면 된다.

단, 문제에서 주어진 수들의 범위는 2^20 에, 최대 50만개 이므로 bin을 사용해도 약 O(21*500,000) 이다.


출처

 

구름LEVEL

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

level.goorm.io

728x90