[프로그래머스] 마법의 엘리베이터 java

Bong2·2024년 5월 12일
0

알고리즘

목록 보기
19/63

문제 - 마법의 엘리베이터

문제 설명

문제 접근

  1. 일의 자릿수부터 현재 층의 제일 높은 자릿수까지 확인한다.
  2. 5보다 큰 경우에는 다음의 자릿수를 올려주고 10 - number를 뺀 숫자만큼 횟수 증가
  3. 5보다 작은 경우에는 다음의 자릿수를 고려하지않고 해당 숫자만큼 횟수 증가
  4. 5인 경우에는 앞자리의 숫자를 고려하여 5보다 크거나 같은 경우에는 10에서 뺀 숫자만큼 위로 올라가고 작은 경우에는 내려주면 된다.
    ex) 654 인경우 4층을 내려가고 510 층을 내려가고 6100층을 내려가야하는 경우는 4+5+6 15
    4층을 내려가고 (650) 50층을 더올라가고 (700) 3층을 더 올라간뒤 (1000) 1000층에서 내려가는 경우는 4+5+3+1로 13으로 더 적은 돌로 이동가능
import java.util.*;

class Solution {
    
    public int solution(int storey) {
        int answer = 0;
        
        while(storey > 0)
        {
            int number = storey%10;
            storey /= 10;
            
            if(number > 5)
            {
                storey++;
                answer+=10-number;
            }
            else if(number == 5)
            {
                if(storey%10 >= 5)
                {
                    storey++;
                }
                answer+=number;
            }
            else
            {
                
                answer+=number;
            }
            
        }
        
        return answer;
    }
    
    
}
profile
자바 백엔드 개발자로 성장하자

0개의 댓글