코딩테스트/프로그래머스

[프로그래머스] [Level 2] 다음 큰 숫자

박소민 2022. 5. 6. 22:05
다음 큰 숫자
 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

 

  • 내 풀이
    • 이진수 구하는 방법 : format(숫자, 'b')
def solution(n):
    answer = 0
    m=format(n,'b').count('1')
    i=n
    while True:
        i+=1
        if format(i,'b').count('1')==m:
            answer=i
            break
        
    return answer
print(solution(78))
print(solution(15))
#결과
83
23

 

  • 다른 사람 풀이
    • 이진수 구하는 방법 : bin(n)
def nextBigNumber(n):
    num1 = bin(n).count('1')
    while True:
        n = n + 1
        if num1 == bin(n).count('1'):
            break
    return n