https://programmers.co.kr/learn/courses/30/lessons/12980
function solution(n) {
let cnt = 0;
while (n) {
if (n % 2 == 0) {
n /= 2;
} else {
n -= 1;
cnt++;
}
}
return cnt;
}
N의 범위가 10억이라 배열에 할당하여 푸는 문제가 아니라고 판단
0에서 N으로 가는 문제가 아니라 N에서 0으로 가는 문제라고 생각하면
계속 2로 나누어주며 2로 나누어지지 않는 경우 1을 빼주면 된다고 생각했다.
2으로 나눌수 있다면 나눠주는게 더 적은 횟수로 0으로 갈 수 있기 떄문(거기다 횟수로도 안침)
'Algorithm > PGMS' 카테고리의 다른 글
PGMS - 피로도 (0) | 2022.01.14 |
---|---|
PGMS - 소수찾기 (0) | 2022.01.13 |
PGMS 캐시 (0) | 2022.01.10 |
PGMS 전력망을 둘로 나누기 (0) | 2022.01.10 |
PGMS 거리두기 확인하기 (0) | 2021.12.29 |