스터디/코딩테스트

python 코딩테스트 - 프로그래머스 다음 큰 숫자

공대생철이 2023. 12. 5. 15:14
728x90

 

처음 든 생각

- 하나씩 키워가면서 일일이 탐색을 해야겠다

- 이진수로 바꾸는 것은 저번에 배운 bin 함수를 활용해서 해봐야지

 

나의 답

def solution(n):
    answer = 0
    bn = bin(n)
    cnt = bn[2:].count("1")
    while True:
        n+=1
        if bin(n)[2:].count("1") == cnt:
            return n

 

주어진 수가 가진 1의 개수를 cnt 변수에 담아놓고 반복문을 통해서 알맞은 수를 찾아가는 과정으로 구현한 것이다.

 

찾을 때까지 반복문을 돌게 하기 위하여 while True를 사용했고 찾으면 바로 리턴을 하면서 solution 함수를 끝내는 방식으로 구현하였다.

 

다른 사람들의 풀이도 변수명만 다를 뿐 사용한 함수도 똑같아서 따로 참고해볼 사항은 없었다.

728x90