728x90
반응형
https://www.acmicpc.net/problem/2812
문제 해결
- stack을 쌓아서 앞쪽에 큰수들로 이루어지도록 하는 것이 포인트
- 특이 케이스로 같은 숫자가 계속 나와서(예: 33333) 제거하기 애매한 상황이 나올 수 있음
- 따라서 stack이 많이 쌓일 수도 있으므로 앞에서부터 n-k개를 출력해야한다.
CODE
import sys
input = sys.stdin.readline
from collections import deque
n, k = map(int, input().split())
que = deque([int(c) for c in str(input().rstrip())])
A = []
A.append(que.popleft())
cnt = 0
while que:
x = que.popleft()
while cnt<k and len(A)>0:
if A[-1] < x:
A.pop()
cnt +=1
continue
break
A.append(x)
ans = ''.join(map(str,A[:n-k]))
print(int(ans))
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 9506 약수들의 합 (0) | 2023.03.16 |
---|---|
[python] 백준 10825 국영수 (0) | 2023.03.16 |
[python] 백준 3109 빵집 (0) | 2023.03.16 |
[python] 백준 5397 키로거 (0) | 2023.03.15 |
[python] 백준 2841 외계인의 기타 연주 (0) | 2023.03.15 |
댓글