Menu
CoddyTech

Remove K Digits

숫자로 이루어진 문자열 num과 정수 k가 주어집니다. 정확히 k개의 숫자를 제거하고 나머지는 원래 순서대로 유지하여, 남은 숫자가 가능한 한 가장 작아지도록 하세요.

앞에 0이 붙지 않는 문자열로 반환하세요. 아무것도 남지 않거나 0만 남으면 "0"을 반환하세요.

함수

removeKdigits(num: string, k: integer) → string
numstring
숫자 문자열로 쓴 숫자
kinteger
제거할 자릿수
반환값string
앞에 0이 붙지 않는 문자열로 나타낼 수 있는 가장 작은 수

제약 조건

  • 1 ≤ num.length ≤ 4 × 104
  • 0 ≤ k ≤ num.length
  • num은 숫자 0부터 9까지만 담습니다.
  • num에는 앞에 오는 0이 없습니다. 단, 숫자 자체가 0인 경우인 "0"은 예외입니다.

예제

입력
num = "4325043"k = 3
출력
"2043"
설명
4와 첫 번째 3을 제거하면 2가 맨 앞에 옵니다. 0은 맨 앞에 올 수 없습니다. 그 앞에 네 자리가 있고 제거 횟수는 세 번이기 때문입니다. 마지막으로 제거되는 숫자는 5이며, 이 숫자는 더 작은 0 앞에 있습니다.
challenge icon

후속 질문

대신 k자리 숫자를 제거하고 가장 큰 수를 남기려면 어떻게 해법을 바꾸면 될까요?

코드 초기화
def removeKdigits(num, k):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

num = "4325043"
k = 3

예상 출력

"2043"