[프로그래머스] 점프와 순간 이동
2023. 2. 20. 23:03ㆍAlgorithm
1. 앞으로 K만큼 이동 => 건전지 사용량 K
2. (현재까지 온 거리 * 2)위치로 이동 => 건전지 사용X
=> 2번 방법을 많이 사용하는 것이 유리!
2번 사용을 우선으로 하고, 어쩔 수 없을 때 1번을 사용하는 것으로 문제를 풀었다.
도착한 위치부터 0위치로 돌아간다고 생각했을 때,
위치가 짝수일 때는 2번 방법을 사용해서 절반만큼 돌아가고, (곱하기 2한 위치로 이동하니까)
위치가 홀수일 경우는 1번을 사용하여 1만큼 돌아갈 수 있다.
즉, 2로 나누어 떨어지면 사용량 0, 아니면 사용량 1이다.
예) 2500, 1250, 625, 624, 312, 156, 78, 39, 38, 19, 18, 9, 8, 4, 2, 1, 0
function solution(n) {
let ans = 0;
while (n > 0) {
if (n % 2 === 1) {
n -= 1;
ans += 1;
}
n = n / 2;
}
return ans;
}
'Algorithm' 카테고리의 다른 글
[프로그래머스] 괄호 회전하기 (1) | 2023.02.22 |
---|---|
[프로그래머스] 직사각형 별찍기 (0) | 2023.02.22 |
[프로그래머스] N개의 최소공배수 (0) | 2023.02.20 |
JavaScript의 match함수 (0) | 2023.02.13 |
[프로그래머스] 게임 맵 최단거리 (0) | 2023.02.12 |