Search
Duplicate

점프와 순간 이동

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def solution(n): # N이 10억 정도로 클 수 있습니다. # O(log n), O(1) 정도에 해결하는 방법이 있다는 뜻입니다. ans = 1 # 우선 n이 2로 나누어진다면, 나눌 수 있는 만큼 나눠봅니다. while n > 1: while n % 2 == 0: n /= 2 # 예외처리: n이 1이면 그냥 끝냅니다. if n == 1: break # 2로 안 나누어떨어지면 1을 빼서 2로 나누어떨어지게 합니다 n -= 1 ans += 1 return ans
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges