반응형
접근
- 2진수로 변환 하는 함수를 알아야했다 (bin이나 format 방식을 이용한다)
- 숫자를 하나 씩 늘려가며 일치할 시에 반복문을 빠져나오면 된다.
# 다음 큰 숫자
# https://programmers.co.kr/learn/courses/30/lessons/12911
# 3시 8분 - 3시 25분 (17분)
def solution(n):
b_origin = str(format(n, 'b'))
b_count = b_origin.count('1')
num = n
while True:
num += 1
v = str(format(num, 'b'))
if v.count('1') == b_count:
return num
def solution2(n):
cnt = format(n, 'b').count('1')
while True:
n += 1
if format(n, 'b').count('1') == cnt:
return n
def solution3(n):
cnt = bin(n).count('1')
while True:
n = n + 1
if bin(n).count('1') == cnt:
break
return n
'코딩테스트 > 파이썬' 카테고리의 다른 글
[프로그래머스] 예상 대진표(level 2) (파이썬) (0) | 2021.05.19 |
---|---|
[프로그래머스] 위장(level 2) (파이썬) (0) | 2021.05.18 |
[프로그래머스] 기능 개발(level 2) (파이썬) (0) | 2021.05.10 |
[프로그래머스] 주식가격(level 2) (파이썬) (0) | 2021.05.07 |
[백준] 01타일 1920 (파이썬) (0) | 2021.03.19 |