function solution(n) {
let cnt = 0;
while(n) {
if(n % 2 === 1) {
cnt += 1;
}
n = Math.floor(n / 2);
}
return cnt;
}
처음엔 dp로 풀어야 하나...? 고민했는데 아주 간단한 문제였다.
순간이동시에는 배터리가 닳지 않으니 왠만하면 순간이동을 하는게 좋지만 2의 배수가 아닐 경우에는 1칸씩 이동해주어야 한다.
따라서 2의 배수가 아닐 경우에만 1씩 더해주고 n이 0이 될때까지 2로 계속 나누어주면 된다.
'PS > Programmers' 카테고리의 다른 글
Programmers / Level 2 / [1차] 캐시 / JS (0) | 2023.01.03 |
---|---|
Programmers / Level 2 / 멀리 뛰기 / JS (0) | 2023.01.03 |
Programmers / Level 2 / 예상 대진표 / JS (0) | 2022.12.30 |
Programmers / Level 2 / 튜플 / JS (0) | 2022.12.29 |