ror_coding

[Programmers] 마법의 엘리베이터 - 148653 본문

Algorithm/Python

[Programmers] 마법의 엘리베이터 - 148653

ro_rdil_31 2024. 12. 13. 00:10
728x90

특수한 경우를 인지하고 대처하기 !

 

Question

 

마법의 돌을 아끼기 위해 민수는 항상 최소한의 버튼을 눌러서 이동하려고 합니다. 민수가 어떤 층에서 엘리베이터를 타고 0층으로 내려가는데 필요한 마법의 돌의 최소 개수를 알고 싶습니다. 민수와 마법의 엘리베이터가 있는 층을 나타내는 정수 storey 가 주어졌을 때, 0층으로 가기 위해 필요한 마법의 돌의 최소값을 return 하도록 solution 함수를 완성하세요.

제한사항
  • 1 ≤ storey ≤ 100,000,000

 

Point

 

  • r 이 5일 때 10의 자리를 보며 경우의 수를 다시 나눠야 함.

 

Code

 

def solution(storey):
    cnt = 0
    while storey :
        storey, r = storey//10, storey%10
        
        if r < 5 or ( r==5 and storey%10 < 5): cnt += r
        else : cnt += (10-r); storey += 1
        
    return cnt

 

now me

On my github

 

728x90