[프로그래머스 Level 2] 마법의 엘리베이터
1분 읽기
풀이 1:
function solution(storey) {
let count = 0;
while(storey > 0){
const remain = storey % 10;
const next = Math.floor(storey / 10);
const min = Math.min(10 - remain, remain);
count += min;
storey = next;
// 나머지가 5 초과일 경우, 올림이 항상 최적의 선택이다.
// 하지만 나머지가 5인 경우, 다음 자리수의 크기에 따라 올림 또는 내림이 결정된다.
if(remain > 5 || remain === 5 && next >= 5){
storey++;
}
}
return count;
}Review
[제한 사항]
- 1 ≤
storey≤ 100,000,000
Greedy10편 중 10번째
관련 글
4분 읽기
소수 구하기
소수 판별법과 소수를 구하는 알고리즘을 정리합니다.
1분 읽기
[프로그래머스 Level 2] 미로 탈출
프로그래머스 미로 탈출을 BFS로 풀이합니다.
1분 읽기
[2020 KAKAO TECH INTERNSHIP Level 3] 보석 쇼핑
2020 카카오 인턴십 보석 쇼핑을 슬라이딩 윈도우 투 포인터로 풀이합니다.