728x90
반응형
1. 문제 설명
2. 풀이과정
- 다음 큰 수를 찾기 위해 입력받은 다음 수를 저장한다. num = n + 1
- 입력받은 수를 2진수로 바꾼 결과를 저장할 리스트를 생성한다. li = list()
- 입력받은 수가 0이 될 때까지 반복한다. while (n != 0)
- 2로 나눈 나머지를 리스트에 추가한다. li.append(n % 2)
- 2로 나눈 몫을 새롭게 저장한다. n //= 2
- 다음 수의 2진수 변환 결과를 저장할 리스트를 생성한다. li2 = list()
- 두 2진수의 결과 리스트의 1의 개수가 같을 때까지 반복한다. while (li2.count(1) != li.count(1))
- 리스트를 초기화한다. li2.clear()
- 다음 숫자를 변환할 숫자로 만들어준다. n = num
- 다음 숫자로 바꿔준다. num += 1
- 입력받은 수가 0이 될 때까지 반복한다. while (n != 0)
- 2로 나눈 나머지를 리스트에 추가한다. li2.append(n % 2)
- 2로 나눈 몫을 새롭게 저장한다. n //= 2
- 정해진 다음 큰 수의 2진 결과를 10진수로 변환한다. for i in range(len(li2)): answer += (2 ** i) * li2[i]
반응형
3. 소스코드
def solution(n):
answer = 0
num = n + 1
li = list()
while (n != 0):
li.append(n % 2)
n //= 2
li2 = list()
while (li2.count(1) != li.count(1)):
li2.clear()
n = num
num += 1
while (n != 0):
li2.append(n % 2)
n //= 2
for i in range(len(li2)):
answer += (2 ** i) * li2[i]
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 최소직사각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
---|---|
[프로그래머스] 시저 암호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 삼총사 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 피보나치 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.06 |
[프로그래머스] 숫자의 표현 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.06 |
[프로그래머스] 예산 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.06 |
[프로그래머스] 이상한 문자 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.06 |
[프로그래머스] 3진법 뒤집기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.04 |