마법의 엘리베이터

최민수·2023년 2월 25일
0

알고리즘

목록 보기
12/94
⭐️
def solution(storey):
    answer = 0
    
    # 일의 자리부터 digit 단위로 판단
    while(storey > 0):
        digit = storey % 10
        
        if digit >= 6:
            storey += (10-digit)
            answer += (10-digit)
        # 이전 자리 숫자가 5이상이면 +1
        elif digit == 5 and (storey // 10) % 10 >= 5:
            storey += 5
            answer += 5
        # 나머지 경우는 모두 -1
        else:
            answer += digit
        
        storey = storey // 10
        
    return answer
  • BFS/DFS 로 접근하는 것은 너무 깊어져서 시간초과가 유력해 보인다. (특히, DFS)
  • 각 자리 숫자 마다 판단 + 이전 자리 숫자 고려해서 조건을 잘 만들어 푼다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

profile
CS, 개발 공부기록 🌱

0개의 댓글