[프로그래머스] 마법의 엘리베이터

2026. 4. 13. 10:17·Algorithm

문제

 

 

마법의 엘리베이터라는 설정이 붙어있긴 하지만, 각 자릿수를 0으로 만드는 최소 이동횟수를 구하는 문제이다.

 

풀이

def solution(storey):
    num = storey
    cnt = 0
    while num :
        #현재 1의 자리
        digit = num % 10
        #다음에 들어갈 num
        num = num // 10
        #num % 10 : 다음 10의 자릿수
        #자릿수가 5보다 크면 : 올라가기가 유리(상위 자릿수에 1 더함)
        if digit > 5 or (digit == 5 and (num % 10 + 1) > 5):
            cnt += (10 - digit)
            num += 1
        #5보다 작으면 : 내려가기가 유리
        else :
            cnt += digit
    return cnt

 

 

풀이 로직

한번 누를 때마다 +1, -1을 결정하게 되므로 각 자릿수마다 두 개의 선택지가 있다.

- 내려가기 : 자릿수만큼 누름

- 올라가기 : 10 - 자릿수만큼 누름 -> 이 경우에는, 대신 윗 자리에 + 1을 해야함

 

따라서, num % 10으로 현재 수의 1의 자리의 수를 구하고, 반복할때마다 //10을 통해서 자릿수에 따라 어떤 방식이 유리한지 선택하는 작업을 수행하였다.

 

 

Github Link  ←

 

BackJoon-Programmers/프로그래머스/2/148653. 마법의 엘리베이터 at main · jaeheonki/BackJoon-Programmers

Contribute to jaeheonki/BackJoon-Programmers development by creating an account on GitHub.

github.com

 

 

'Algorithm' 카테고리의 다른 글

[프로그래머스] 124 나라의 숫자  (0) 2026.04.16
[프로그래머스] 프렌즈4블록  (1) 2026.04.13
[프로그래머스] 오픈채팅방  (0) 2026.04.12
[프로그래머스] 프로세스  (0) 2026.04.09
[프로그래머스] 피로도  (0) 2026.04.09
'Algorithm' 카테고리의 다른 글
  • [프로그래머스] 124 나라의 숫자
  • [프로그래머스] 프렌즈4블록
  • [프로그래머스] 오픈채팅방
  • [프로그래머스] 프로세스
uj07096
uj07096
개발블로그 시작 !
  • uj07096
    김재헌 님의 블로그
    uj07096
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Algorithm
      • My IT
        • Article
        • Codes
      • TIL
      • My Projects N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    머신러닝
    python
    ResNet
    DenseNet
    데이터전처리
    Stack
    autoencoder
    프로그래머스
    LeetCode
    코테
    EfficientNet
    Tensor
    Faster R-CNN
    딥러닝
    transfer learning
    Algorithm
    LSTM
    convolution
    DeepLearning
    이상치
    YOLO
    AI
    til
    optuna
    GAN
    EDA
    PyTorch
    파이썬
    kaggle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
uj07096
[프로그래머스] 마법의 엘리베이터
상단으로

티스토리툴바