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

nylah·2023년 7월 5일
0

https://school.programmers.co.kr/learn/courses/30/lessons/148653#

끝자리부터 계산해나가면 됩니다.
6 이상이면 더해주고, 4 이하이면 빼줍니다.
5일때는 다음 자리를 고려해야 합니다.
예로 555의 경우,
올라가면 555 -> 560 -> 600 -> 1000 까지 총 14번
내려가면 555 -> 550 -> 500 -> 0 까지 총 15번

using System;

public class Solution {
    public int solution(int storey) {
        int answer = 0;
        int r;
        while(storey > 0)
        {
            storey = Math.DivRem(storey, 10, out r);
            if(r > 5 || (r == 5 && (storey % 10 >= 5)))
            {
                answer += 10 - r;
                storey += 1;       
            }
            else answer += r;
        }
        return answer;
    }
}
profile
부족하지만발전하기

0개의 댓글