본문 바로가기
프로그래머스/2단계

(Python/Lv2) 다음 큰 숫자

by windy7271 2022. 9. 19.
728x90
반응형

문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/12911

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이: 

def solution(n):
    number = bin(n)[2:]	# 2: 해줘야 앞에 필요없는 수 제거
    while True:	# True 일때까지 반복
        if bin(n+1)[2:].count('1') == number.count('1'): # n+1 의 2진법 1 카운트와 같으면
            return n +1	# n+1 리턴
        else:
            n += 1	# 다르면 n 에 +1 해줌



print(solution(78))

 

def nextBigNumber(n, count = 0):
    return n if bin(n).count("1") is count else nextBigNumber(n+1, bin(n).count("1") if count is 0 else count)

이렇게 한줄로 표현하는게 놀랍다.

반응형

댓글