🖋️ 풀이 방법
6일 경우 -6을 하는것 보다 +4를 하고 -10을 하는게 효율적이라는 것 까지는 깨달았다.
하지만 그렇게 풀었더니 틀렸다..
알고보니 5일 경우를 따로 계산해줘야 했다.
5일 경우에는 현재 자릿수가 아닌 앞자리 수에 따라 달라지게 되는데,
45일 때 +5, -50을 하면 총 횟수가 10이 되기 때문에 -5, -40 으로 깎는 것이 이득이다 (총 횟수 9).
그러나 65일 때는 +5, -100, +30 으로 더하는 것이 이득이 된다. (총 횟수 9)
55의 경우는 +5, -100, +40 과 -5, -50 으로 동일하지만, 555 와 같이 자릿수가 늘어날 경우 문제가 되므로 65와 동일하게 처리해야 한다.
using System;
public class Solution {
public int solution(int storey)
{
int answer = 0;
while (storey > 0)
{
int mod = storey % 10;
storey /= 10;
if (mod > 5 || (mod == 5 && storey % 10 >= 5))
{
answer += 10 - mod;
storey += 1;
}
else
{
answer += mod;
}
}
return answer;
}
}