sean.jin
Spark Code Blog
sean.jin
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발공부
      • Kotlin
      • LeetCode
      • Algorithm
      • React
    • 주식차트
    • 책리뷰
    • 유틸리티

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 트리플 위칭데이
  • 책
  • 경제
  • 주식책리뷰
  • 책추천
  • 주식투자
  • 주식입문자
  • 자기개발
  • 초보
  • 책리뷰
  • 오
  • 쿼드러플위칭데이
  • 아빠와 딸의 주식투자 레슨
  • 변동성
  • 네마녀의날
  • 부의 추월차선

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin

Spark Code Blog

개발공부/LeetCode

[JavaScript] 991. Broken Calculator 쉬운 설명

2022. 3. 24. 10:56
반응형

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
    '개발공부/LeetCode' 카테고리의 다른 글
    • [Javascript] 13. Roman to Integer 쉬운설명 - 해시맵
    • [JavaScript]45. Jump Game II
    • [Javascript] 1663. Smallest String With A Given Numeric Value -쉬운 설명
    • [JavaScript] 36. Valid Sudoku
    sean.jin
    sean.jin
    앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

    티스토리툴바