가장 큰 수(스택)
자료구조 활용 (스택, 큐, 해쉬, 힙)
문제 ✏️
가장 큰 수(스택)
선생님은 현수에게 숫자 하나를 주고, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하
여 가장 큰 수를 만들라고 했습니다. 여러분이 현수를 도와주세요.(단 숫자의 순서는
유지해야 합니다)
만약 5276823 이 주어지고 3개의 자릿수를 제거한다면
7823이 가장 큰 숫자가 됩니다.
▣ 입력설명
첫째 줄에 숫자(길이는 1000을 넘지 않습니다)와 제가해야할 자릿수의 개수가 주어집니다.
▣ 출력설명
가장 큰 수를 출력합니다.
▣ 입력예제 1
5276823 3
▣ 출력예제 1
7823
▣ 입력예제 2
9977252641 5
▣ 출력예제 2
99776
코드 💻
import sys
#sys.stdin=open("input.txt", "rt") # read text
num, m = map(int, input().split())
num = list(map(int, str(num))) # 정수를 list로 변환
stack = []
for x in num:
while stack and m > 0 and stack[-1] < x:
stack.pop()
m -= 1
stack.append(x)
if m != 0:
stack=stack[:-m]
res = ''.join(map(str, stack)) # 리스트를 문자열로 일정하게 합쳐줌(구분자)
print(res)
참고
- 인프런 : 파이썬 알고리즘 문제 풀이
Author And Source
이 문제에 관하여(가장 큰 수(스택)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsj3282/가장-큰-수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)