[Programmers] 마법의 엘리베이터

최대 1 분 소요

문제

출처: 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))


hit count image

댓글남기기