프로그래머스 - 다음 큰 숫자 (레벨2)

응애개발자·2023년 6월 18일
0

파이썬 코테

목록 보기
10/11


요약하자면
1. n보다 큰 수
2. 이진수로 변환했을때 n을 이진수로 변환한 것과 1의 갯수가 같은 수
3. 위 두가지 만족하면서 제일 작은 숫자.

def solution(n):
    answer = 0
    temp = n+1
    originOne = len((str(bin(n)).replace("0b","")).replace("0", ""))
    
    while True:
        tempOne = len((str(bin(temp)).replace("0b","")).replace("0", ""))
        
        if originOne == tempOne:
            return temp
            break
        else:
            temp+=1
            
    return answer

간단한 코드입니다.
originOne은 처음에 한번만 만들어주면 되고
계속 while문이 돌면서 조건에 부합한 temp를 찾습니다. 매번 1씩 더해줍니다.
모든 조건을 만족하는 temp를 찾으면 그 즉시 temp를 반환하며 프로그램을 종료합니다.

0개의 댓글