728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제를 풀 때 어떻게 하면 건전지를 최소로 사용할 수 있을지 생각하면서 순간 이동을 많이 사용해야겠다는 생각을 했다. 1부터 각 경우마다 최소 건전지 사용 횟수를 계산해 보다가 6에서 입출력 예 설명을 보니 6은 1로 점프 후, 2로 순간 이동, 다시 3으로 점프, 6으로 순간 이동한 결과를 확인하게 되었다. 하여 무조건 먼저 순간 이동으로 최대로 이동을 하면 안 되겠다는 생각이 들었다.
이후, 2로 계속 나눠보기도 하고 3으로 나눠보기도 하고 계속 고민을 하던 중 각 수를 2진수로 변환했을 때 해당 2진수의 1의 개수만큼 점프를 하면 된다는 규칙을 발견했다.
- 입력받은 수의 2진수 결과를 저장해 줄 리스트를 생성한다. li = list()
- 입력받은 수가 0이 될 때까지 반복하며 while (n != 0)
- 입력받은 수를 2로 나눈 나머지를 리스트에 추가하고 li.append(n % 2)
- 수를 2로 나눈 몫으로 새로 저장한다. n //= 2
- 2진수로 바꾼 결과 리스트에서 1의 개수를 세어 정답에 저장한다. ans = li.count(1)
반응형
3. 소스코드
def solution(n):
ans = 0
li = list()
while (n != 0):
li.append(n % 2)
n //= 2
ans = li.count(1)
return ans
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 멀리 뛰기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
---|---|
[프로그래머스] 가장 가까운 같은 글자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[프로그래머스] 푸드 파이트 대회 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[프로그래머스] N개의 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[프로그래머스] 구명보트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |
[프로그래머스] 두 개 뽑아서 더하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |
[프로그래머스] 예상 대진표 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |
[프로그래머스] K번째수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |