공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/코딩테스트 문제풀이

[Python] 프로그래머스. 점프와 순간이동 (Level 2)

inspirit941 2020. 5. 8. 18:06
반응형

https://programmers.co.kr/learn/courses/30/lessons/12980

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

현재 위치부터 0까지 도달하는 방법을 역산하면 간단히 식을 도출할 수 있는 문제.

이전 위치 * 2로 현재 위치에 도달할 수 있으면 건전지 사용이 필요없다.

 

즉, 현재 위치 % 2 == 0이면 건전지 사용 없이 위치에 도달할 수 있다.

만약 현재 위치 % 2 != 0이라면, 현재 위치 % 2가 0이 될 수 있도록 1을 빼준다.

 

문제의 예시 5000은

5000 -> 2500 -> 1250 -> 625 -> 624 (+1) -> 312 -> 156 -> 78 -> 39 -> 38 (+1) -> 19 -> 18 (+1) -> 9 -> 8 (+1) -> 4 -> 2 -> 1 -> 0 (+1) 로, 총 다섯 번의 이동이 필요하다.

 

입력받은 n값이 0이 될 때까지, n을 2로 나눈 몫과 나머지를 구한다. 나머지가 1일 경우만 카운트하면 된다.

 

 

반응형