[Programmers] 마법의 엘리베이터
문제
출처: https://school.programmers.co.kr/learn/courses/30/lessons/148653
풀이
func solution(storey int) int {
answer := 0
// 그리디하게 탐색
for {
if storey == 0 {
break
}
r := storey % 10
storey /= 10
if r > 5 {
// 6층 이상일 때 올라가야 함
answer += (10 - r)
storey += 1
} else if r == 5 && (storey % 10 >= 5) {
// 5층이면서 올라갔을 때 5층 이상에 가는 경우 올라가야 함
answer += (10 - r)
storey += 1
} else {
answer += r
}
}
return answer
}
다른 사람의 풀이
출처: https://school.programmers.co.kr/learn/courses/30/lessons/148653/solution_groups?language=python3 Magenta195
def solution(storey):
if storey < 10 :
return min(storey, 11 - storey)
left = storey % 10
return min(left + solution(storey // 10), 10 - left + solution(storey // 10 + 1))
댓글남기기