https://school.programmers.co.kr/learn/courses/30/lessons/148653
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
from collections import deque
def solution(storey):
answer = int(1e9)
q = deque([[storey, 0]])
while q:
n, cnt = q.popleft()
while n > 0:
if n < 10:
if n <= 5:
cnt += n
else:
cnt += (10-n%10)+1
answer = min(answer, cnt)
break
if n%10 < 5:
cnt += n%10
n = n // 10
elif n%10 > 5:
cnt += (10 - n%10)
n = (n // 10)+1
else:
q.append([n//10, cnt + 5])
q.append([((n // 10)+1), cnt + 5])
break
return answer