❗[알고리즘]가장 큰 수

김도연·2024년 1월 18일

알고리즘

목록 보기
31/56

문제

선생님은 현수에게 숫자 하나를 주고, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하 여 가장 큰 수를 만들라고 했습니다. 여러분이 현수를 도와주세요.(단 숫자의 순서는 유지해야 합니다)
만약 5276823 이 주어지고 3개의 자릿수를 제거한다면
7823이 가장 큰 숫자가 됩니다.

▣ 입력설명
첫째 줄에 숫자(길이는 1000을 넘지 않습니다)와 제가해야할 자릿수의 개수가 주어집니다.
▣ 출력설명
가장 큰 수를 출력합니다.

입력예제1

5276823 3

출력예제1

7823

입력예제2

9977252641 5

출력예제2

99776

[해설코드]

num,N=map(int,input().split())
num=list(map(int,str(num)))
stack=[]
for x in num:
	while stack and N>0 and stack[-1]<x:
    	stack.pop()
        N-=1
    stack.append(x)
if N!=0:
	stack=stack[:-N]
res=''.join(map(str,stack))
print(res)

[설명]

0개의 댓글