lv 2. 다음 큰 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12911

💡문제 분석 요약

입력받은 숫자의 이진수와 1의 개수가 같은 다음으로 큰 숫자를 구한다.

💡알고리즘 설계

  1. 이진수로 변환
  2. 1의 개수 카운트 후 저장
  3. 숫자를 1씩 늘리며 이진수로 변환 후, 1의 개수를 카운트
  4. 1의 개수가 같다면 break 후 프린트

💡코드

def solution(n):
    b = format(n, 'b')
    count=0
    for i in str(b):
        if i=='1':
            count+=1
    while True:
        n+=1
        b = format(n, 'b')
        new_count=0
        for i in str(b):
            if i=='1':
                new_count+=1
        if count==new_count:
            break
        
    answer = n
    return answer

💡시간복잡도

for문: O(MN)

💡 틀린 부분 수정 or 다른 풀이