티스토리 뷰

💡 문제 해결 아이디어

1. 현재 자리수 단위로 이동 (ex. 두자리의 경우 10) vs 하나 더 큰 단위로 이동 (ex. 두자리의 경우 100)

    - 4층이면, -10으로 이동하는 것보단 그냥 -1로 4번 이동하는게 낫다.

    - 9층이면, -10으로 이동하고 +1로 이동하는게 -1로 9번보다 낫다.

 

2. 양수나 음수나 똑같다.

    - 4층이나 -4층이나 1단위로 4번 이동해야하는 건 똑같다. 모든 수에서 양수나 음수나 똑같다.

 

💻 작성된 코드

def solution(storey):
    answer = 0 
    # 도착할때까지,
    while storey > 0:
        # 현재 숫자 자리수
        num_digits = len(str(storey))
        # 하나 더 큰 단위로 이동 & 현재 자리수 단위로 이동
        # 양수나 음수나 똑같다.
        case_a = abs(storey - 10 ** num_digits)
        case_b = abs(storey - 10 ** (num_digits - 1))
        # 양수화 후 비교해서 0에 더 가까운 경우 선택.
        storey = min(case_a, case_b)
        # 한번 이동했으니 answer += 1
        answer += 1
    
    return answer

 

 

 

 

 

 

댓글