728x90
풀이
1주차 문제 중 처음으로 정답률이 90% 아래로 떨어진 문제다.
아마도 2진수에 대한 이해와, 정렬 조건이 두개라는 부분에서 실수하는 듯 하다.
Python으로 풀이했기 때문에 단순히 bin으로 10진수를 2진수 문자열로 변환 후 '1'의 개수를 세주었다.
동시에, 1의 개수가 동일하다면 원래의 수를 기준으로 내림차순 정렬해야되기 때문에
(2진수 중 1의 개수, 원래 수) 라는 쌍으로 새로운 리스트를 만든 후 내림차순 정렬해주어 풀이했다.
결과로 입력받은 K번째 수의 원래수를 출력해주자.
만약, 이진수 중 1의 개수를 구해주는 내장함수가 없거나, 최적화 하고싶다면 아래와 같이 비트1의 개수를 구해주는 함수를 만들어서 풀이하면 된다.
단, 문제에서 주어진 수들의 범위는 2^20 에, 최대 50만개 이므로 bin을 사용해도 약 O(21*500,000) 이다.
출처
728x90
'PS' 카테고리의 다른 글
[구름톤 챌린지] 7일차 - 구름 찾기 깃발 [Python] (0) | 2023.08.23 |
---|---|
[구름톤 챌린지] 6일차 - 문자열 나누기 [Python] (0) | 2023.08.21 |
[구름톤 챌린지] 4일차 - 완벽한 햄버거 만들기 [Python] (0) | 2023.08.18 |
[구름톤 챌린지] 3일차 - 합 계산기 [Python] (0) | 2023.08.16 |
[구름톤 챌린지] 2일차 - 프로젝트 매니징 [Python] (0) | 2023.08.15 |