알고리즘/프로그래머스

[프로그래머스 | Lv2] 마법의 엘리베이터 (Python)

sssbin 2023. 2. 3. 17:31

 

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

 

프로그래머스

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

programmers.co.kr

 

 

가볍게 생각했다가 스트레스 받아서 죽을 뻔 함ㅠㅋㅋㅋㅋㅋㅋㅋㅋㅋ 갈 길이 멀다...

 

첫 시도 -> 테케 다 맞아서 오!! 했는데 채점 결과 두 문제 맞힘;;

두 번째 시도 -> 테케도 이것저것 추가하고 다 맞아서 기대했는데 또 틀림.

세 번째 시도 -> 게시판 탐색 후 "5"를 기준으로 답이 달라진다는걸 캐치. 근데 또 틀림.

네 번째 시도 -> 일의 자리를 탐색하고 있을 때를 생각 못했다는 걸 캐치,, 정답,,

 

# 프로그래머스 14853: 마법의 엘리베이터

def solution(storey):
    answer = 0
    c = len(str(storey)) - 1
    temp = storey // 10**c
    
    while True:
        if temp < 5:
            answer += temp
            storey %= 10**c
        elif temp == 5:
            if c == 0:
                answer += 5
                break
            if (int(str(storey)[-c])) >= 5:
                answer += 1
                storey = 10**(c+1) - storey
            else:
                answer += temp
                storey %= 10**c
        else:
            answer += 1
            storey = 10**(c+1) - storey
        
        if (temp == storey) and c == 0:
            break

        c = len(str(storey)) - 1
        temp = storey // 10**c
        
    return answer