프로그래머스 LV2 - 다음 큰 숫자
내 풀이
def solution(n):
n_count = bin(n)[2:].count('1')
big_n = n + 1
while True:
big_count = bin(big_n)[2:].count('1')
if big_count == n_count:
return big_n
big_n += 1
다른 풀이
def solution(n):
# n을 2진수로 변환하고 1의 개수를 세어 n_count1에 저장
n_count1 = bin(n).count('1')
# n의 다음 숫자를 구하기 위해 next_n을 n+1로 초기화
next_n = n + 1
# 무한 루프
while True:
# next_n을 2진수로 변환하고 1의 개수를 세어서 n_count1과 같을시,
# next_n이 우리가 찾는 숫자이므로 next_n을 반환(return)하고 함수를 종료
if n_count1 == bin(next_n).count('1'):
return next_n
# next_n과 n_count1이 같지 않다면 next_n에 1을 더해 다음 숫자로 넘어갑니다.
next_n += 1
출처: https://1ets-just-do-it.tistory.com/118 [파이썬은 신이야🔥🔥🔥:티스토리]
풀이 해석
- bin 함수를 이용해 2진변환을 하였다
- count를 통해 1을 센 후 1개수가 같은 수가 나오면 return
배울 점
- bin 함수에 바로 count 적용
댓글남기기