문제 설명
문제 링크
[프로그래머스[Level2] 마법의 엘리베이터]
(https://school.programmers.co.kr/learn/courses/30/lessons/148653)
접근 방법
- 그리디 알고리즘
- JS는 /(나누기) 사용시 소수점 아래의 값까지 다 나오기 때문에 floor를 적절하게 활용해주어야함.
- -1,1,-10,10,-100,100 등과 같이 버튼이 구성되어 있다. => 17 같은 경우는 20으로 0층을 내려가는 것이 더 빠름.
- 그래서 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;
}
'알고리즘문제풀이' 카테고리의 다른 글
프로그래머스[Level2] 주식가격 - JavaScript (0) | 2023.11.24 |
---|---|
프로그래머스[Level1] 신고 결과 받기 - JavaScript (0) | 2023.04.20 |
프로그래머스[Level1] 크기가 작은 부분 문자열 -Javascript (0) | 2023.04.20 |
프로그래머스[Level2] 무인도 여행 - JavaScript (0) | 2023.04.20 |
프로그래머스[Level1] 신고 결과 받기 - JavaScript (0) | 2023.04.19 |