#
문제 설명
마법의 엘리베이터의 버튼을 통해 현재 층에서
0층으로 가는 마법의 돌 최소 소모 개수 구하기
조건
매개 변수
storey
반환값
storey | result |
---|---|
16 | 6 |
2554 | 16 |
function solution(storey) {
let answer = Number.MAX_SAFE_INTEGER;
function dfs(currentFloor, presses) {
if (presses >= answer) return;
if (currentFloor === 0) answer = presses;
else {
let res = currentFloor % 10;
dfs(Math.floor(currentFloor / 10), presses + res);
if (res !== 0) {
dfs(Math.floor(currentFloor / 10) + 1, presses + 10 - res);
}
}
}
dfs(storey, 0);
return answer;
}
풀이
DFS 를 통해 solution 구하기
- 10을 기준으로 몫과 나머지 구하기
- 크거나 작을 때 반올림