반응형
991. Broken Calculator
There is a broken calculator that has the integer startValue on its display initially. In one operation, you can:
- multiply the number on display by 2, or
- subtract 1 from the number on display.
Given two integers startValue and target, return the minimum number of operations needed to display target on the calculator.
Example 1:
Input: startValue = 2, target = 3
Output: 2
Explanation: Use double operation and then decrement operation {2 -> 4 -> 3}.
Example 2:
Input: startValue = 5, target = 8
Output: 2
Explanation: Use decrement and then double {5 -> 4 -> 8}.
Example 3:
Input: startValue = 3, target = 10
Output: 3
Explanation: Use double, decrement and double {3 -> 6 -> 5 -> 10}.
계획
문제 설명
우리가 구현할 계산기는, 계산을 진행할때 -1과 2만 가능한 계산기 입니다.
그리고 이계산기로 startvalue를 target 값으로 만들어주고 여기서 걸린 step을 리턴해주면됩니다.
구현 전략
우선 startvalue가 target 보다 클경우, 빼기만 가능합니다.
그리고 나머지 케이스들은 2로 나눴을때 나머지값이 0이 되는 숫자를 먼저 만들고 2로계속 나눠주고 계산이 이루어진 횟수를 기록하고 그 기록한 값을 리턴하면됩니다.
해설
var brokenCalc = function(startValue, target) {
let steps = 0;
while(target !== startValue){
if(startValue > target){
return steps + startValue - target;
}
if(target %2 === 0){
target /= 2;
}else {
target += 1;
}
steps++;
}
return steps
};
반응형
'개발공부 > LeetCode' 카테고리의 다른 글
[Javascript] 13. Roman to Integer 쉬운설명 - 해시맵 (0) | 2022.04.05 |
---|---|
[JavaScript]45. Jump Game II (0) | 2022.03.31 |
[Javascript] 1663. Smallest String With A Given Numeric Value -쉬운 설명 (0) | 2022.03.22 |
[JavaScript] 36. Valid Sudoku (0) | 2022.03.20 |
[JavaScript] 49. Group Anagrams 쉬운설명, hasmap사용 (0) | 2022.03.20 |