Data Structures & Algorithms

[Algorithms] 스택,큐,해쉬,힙-가장 큰 수(스택)

숄구-ml 2022. 5. 17. 18:54

 

  • m 개의 숫자는 꼭 제거 해야한다는 점 명심
  • 숫자의 순서는 유지되야 한다는 점 명심
  • 너무 헤맸다... ㅠ흑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import sys
 
# sys.stdin = open("input", "rt")
n, m = map(int, input().split())
number = list(map(intstr(n)))                 # n이라는 int형 정수를 str으로 변환 후 각각의 letter에 대해 int를 적용해서 리스트화 한다
 
stack=[]
for i in number:
    while stack and m > 0 and i > stack[-1]:    # stack이 비어있지 않고 / 제거해야 할 수가 0이 아직 안됐고 / 스택의 마지막 숫자가 현재 비교하는 숫자보다 작을때
        m-=1
        stack.pop()                             # stack에 있는 수를 pop 해준다
    stack.append(i)
 
if m!=0:
    stack = stack[:-m]                          # 숫자를 stack에 다 넣었는데 아직 수를 더 제거해야 할 때 슬라이스를 이용한다
print(''.join(map(str,stack)))
 
 
 
cs
728x90