마법의 엘리베이터

Lv. 2

Solution

export function magicalElevator(storey: number) {
  function divmod(num: number, divisor: number): [number, number] {
    return [Math.floor(num / divisor), num % divisor];
  }
 
  let [answer, currentNum] = [0, storey];
  while (0 < currentNum) {
    const [nextNum, diff] = divmod(currentNum, 10);
    if (5 < diff || (diff === 5 && 5 <= nextNum % 10)) {
      answer += 10 - diff;
      currentNum = nextNum + 1;
    } else {
      answer += diff;
      currentNum = nextNum;
    }
  }
 
  return answer;
}