level2_다음 큰 숫자
2024. 2. 27. 21:24ㆍ파이썬_알고리즘(코딩테스트)/level2

내가 제출한 코드
def solution(n):
cnt1 = bin(n)[2:].count("1")
while True:
n += 1
if cnt1 == bin(n)[2:].count("1"):
break
return n
cnt1은 이진수 문자열에서 1의 개수를 세서 저장한다.
while루프를 사용해서 n보다 큰 정수 중에서 같은 수의 1을 가지는 가장 작은 정수를 찾는다.
같다면 루프는 break를 통해 중단된다.
다른 사람이 제출한 코드
def nextBigNumber(n):
one_count = bin(n).count("1")
for compare_num in range(n+1, 1000001):
if bin(compare_num).count("1") == one_count:
break
return compare_num
다른분들이 작성해주신 댓글을 봤는데 내가 제출한 코드에서 if문 없이, while 조건 안에 if의 부정 조건 넣고 돌리면 효율성 검사 통과된다고 한다!
'파이썬_알고리즘(코딩테스트) > level2' 카테고리의 다른 글
| level2_짝지어 제거하기 (0) | 2024.03.05 |
|---|---|
| level2_피보나치 수 (0) | 2024.02.29 |
| level2_숫자의 표현 (0) | 2024.02.25 |
| level2_이진 변환 반복하기 (0) | 2024.02.22 |
| level2_올바른 괄호(스택/큐) (0) | 2024.02.21 |