https://school.programmers.co.kr/learn/courses/30/lessons/12980
1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
- 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return - 주어진 자료는 무엇인가?
- 한 번에 K 칸을 앞으로 점프
- (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동
- 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. - 조건은 무엇인가?
- 숫자 N: 1 이상 10억 이하의 자연수
- 숫자 K: 1 이상의 자연수
2. 계획
- 주어진 숫자를 2로 나눌때
1-1 나누어 떨어진다면 이 값을 가지고 다시 1번 실행
1-2 나누어 떨어지지 않는다면 나누지 않고 -1을 하고 count+1 그리고 다시 1번 실행 - n이 0이 되면 count 값을 리턴한다.
3. 실행
- 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (n, count = 0) => {
if (n === 0) {
return count
}
if (n % 2 === 0) {
return solution(n / 2, count)
}
if (n % 2 !== 0) {
return solution(n - 1, count += 1)
}
};
test('batteryCount', () => {
expect(solution(5)).toEqual(2);
expect(solution(6)).toEqual(2);
expect(solution(5000)).toEqual(5);
});
'코테연습' 카테고리의 다른 글
160. 주차 요금 계산 Javascript (0) | 2022.09.19 |
---|---|
159. 캐시 Javascript (0) | 2022.09.19 |
157. 예상 대진표 Javascript (0) | 2022.09.18 |
156. 행렬의 덧셈 Javascript (0) | 2022.09.18 |
155. 핸드폰 번호 가리기 Javascript (0) | 2022.09.18 |
댓글