코테 공부

프로그래머스 마법의 엘리베이터 (python 풀이)

moonsun623 2023. 1. 2. 17:31
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/148653

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제설명

현재 자리값이 5을 기준으로 큰지, 작은지에 따라 올라가야할지 내려가야할지 달라진다.

  • i 번째 자리 값이 5 보다 크면 => i+1번째 자리값이 한층 높아질때까지 올라가야한다.
  • i 번째 자리 값이 5 보다 작으면 => i 번째 자리 값이 0이 될때까지 내려가야한다.
  • i 번째 자리 값이 5면
    • i +1 번째 자리값이 5 이상 9이하면 => i+1번째 자리값이 한층 높아질때까지 올라가야한다.
    • i +1 번째 자리값이 4이하이면 => i 번째 자리 값이 0이 될때까지 내려가야한다.

내가 한 풀이

def solution(storey):
    answer = 0
    while storey:
        n = storey%10
        if n >5:
            answer += (10-n)
            storey+=10
        elif n < 5:
            answer += n
        else :
            if (storey//10)%10 > 4:
                storey +=10
            answer += n
        storey//=10                                                                                                         
    return answer