- 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(int, str(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
'Data Structures & Algorithms' 카테고리의 다른 글
[Algorithms] 스택,큐,해쉬,힙-후위 표기식 만들기(스택) (0) | 2022.05.18 |
---|---|
[Algorithms] 스택,큐,해쉬,힙-쇠막대기(스택) (0) | 2022.05.17 |
[Algorithms] 결정&그리디 알고리즘-역수열(그리디 알고리즘) (0) | 2022.05.17 |
[Algorithms] 결정&그리디 알고리즘-침몰하는 타이타닉(그리디 알고리즘) (0) | 2022.05.16 |
[Algorithms] 결정&그리디 알고리즘-씨름 선수(그리디 알고리즘) (0) | 2022.05.16 |