프로그래머스 lv2 마법의엘리베이터
1. 개요
2. 완전탐색 풀이
def solution(number):
if number<=1:
return number
# number를 10으로 나누었을때의 mock이 다음 재귀호출때 검사할 number
# remain이 엘리베이터 버튼을 눌러야 되는 횟수가 된다
number, remain = number//10, number%10
# remain을 그대로 버튼을 누를지
# 아니면 올림을 해서 10-remain번 버튼을 누르고 number+1을 다시 검사할지의 두가지 경우의수가 있다.
# 따라서 두개를 비교하여 최솟값을 반환하도록 재귀호출을 하고
# 최대 시간복잡도는 약 2**9=512로 예상된다.
return min(solution(number)+remain, solution(number+1)+10-remain)
Leave a comment