문제 설명

문제 링크

[프로그래머스[Level2] 마법의 엘리베이터]
(https://school.programmers.co.kr/learn/courses/30/lessons/148653)

접근 방법

  1. 그리디 알고리즘
  2. JS는 /(나누기) 사용시 소수점 아래의 값까지 다 나오기 때문에 floor를 적절하게 활용해주어야함.
  3. -1,1,-10,10,-100,100 등과 같이 버튼이 구성되어 있다. => 17 같은 경우는 20으로 0층을 내려가는 것이 더 빠름.
  4. 그래서 5보다 큰경우, 5인 경우, 5보다 작은 경우를 나눠서 구분지어 If문을 구성

    코드

function solution(storey) {
    var answer = 0;
    answer = makeResult(storey);
    return answer;
}

function makeResult(storey){
    let num = storey;
    let answer =0;
    while(num!=0){
        let tmp = num%10;
        if(tmp>5) {
            num+=(10-tmp);
            answer+=(10 - tmp);
        }
        else if(tmp == 5&&Math.floor(num/10)%10>=5) {
            num+=10-tmp
            answer+=10-tmp;
        }
        else {
            answer+=tmp;
        }
        num =Math.floor((num/10));
    }
    return answer;
}

+ Recent posts