다음 큰 숫자

yongju·2022년 11월 10일
0

Programmers

목록 보기
18/23
post-thumbnail

프로그래머스 레벨2 [정답율 71%]
❓문제

❗문제 정리
사용한 파라미터 :
n(int) : 입력받은 수
next_number(int) : 입력받은 수보다 큰 수를 저장

풀이 방법
n의 다음수의 이진수를 구하여 1의 수가 n의 이진수와같으면 리턴


📑코드

def solution(n):
    next_number=n+1
    while True:
        if format(next_number, 'b').count("1")==format(n,'b').count("1"):
            return next_number
        next_number+=1

📝코드 설명
format(next_number,'b').count("1)을 이용하여 n 다음 수의 이진수가 가진 1의 수를 구하고 n의 이진수가 가진 1의 수를 구하여 같으면 리턴한다. 같지 않으면 n의 다음수를 1 증가시켜서 다시 구한다.


🎖제출 결과

💡insight

  • permuation을 쓰는 방법은 시간 초과
  • 변수 선언을 하는 것은 시간이 걸리나, 계속 반복해서 사용한다면 선언하는게 좋다.
  • set과 sorted를 하기 위해 list로 변경할 필요가 없다. sorted로 나오는 것은 list라 따로 list로 변경할 필요가 없다.
  • bitcount()는 자바의 메소드
  • 이진수를 저장하는 방법은 bin(number).[2:]format(number, 'b')
profile
AI dev

0개의 댓글