본문 바로가기
코딩테스트/Python

[프로그래머스][파이썬] 다음 큰 숫자

by 포뇨j 2023. 11. 23.

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

 

프로그래머스

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

programmers.co.kr

 

def solution(n):
    answer = 0
    str = bin(n)[2:] #n을 이진수로 변환
    cnt1 = str.count("1") #1의 갯수 세기
    
    while True:
        n += 1 #n을 1씩 증가
        str = bin(n)[2:] #n을 이진수로 변환
        cnt2 = str.count("1") #1의 갯수 세기
        if cnt1 == cnt2: #1의 갯수가 같으면 종료
            return n

 

  • bin() 함수로 n을 이진변환 후 1의 개수를 count한다.
  • n을 1씩 증가시키면서 이진변환 시 1의 갯수를 비교한다.
  • bin()[2:]은 이진문자열을 알려주는 '0b' 문자열을 제거하고자 사용했으나, 다른 사람의 풀이를 보니 [2:]을 생략해도 무관한 것 같다.