자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.
자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요.
💡 풀이 아이디어
1) 입력받은 수 num을 2진수 변환한 문자열 중 1의 개수 세기
2) num에 1씩 더해가면서 해당 수를 2진수로 변환했을 때 1의 개수가 다르면 +1 후 반복문 처음으로 돌아가기
3) 1의 개수가 같으면 break
## 내 풀이
def solution(num):
res = num + 1 # 찾고자 하는 '다음 큰 수'
num_bin = format(num, 'b') # 입력받은 num을 2진수 변환
one_num = num_bin.count('1') # 2진수 num에서 1의 개수
while True:
res_bin = format(res, 'b')
one_bin = res_bin.count('1')
# '다음 큰 수' 찾은 경우 => 반복문 탈출
if one_num == one_bin:
break
# '다음 큰 수' 못찾은 경우
res += 1
return res
# 테스트용 코드
print(solution(15))
78
23
## 다른 사람 풀이