์คํ, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ 2812๋ฒ ํฌ๊ฒ ๋ง๋ค๊ธฐ
๋ฌธ์
N์๋ฆฌ ์ซ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ฌ๊ธฐ์ ์ซ์ K๊ฐ๋ฅผ ์ง์์ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K < N ≤ 500,000)
๋์งธ ์ค์ N์๋ฆฌ ์ซ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ 0์ผ๋ก ์์ํ์ง ์๋๋ค.
์ถ๋ ฅ
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ซ์์์ K๊ฐ๋ฅผ ์ง์ ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
4 2
1924
์์ ์ถ๋ ฅ 1
94
์์ ์ ๋ ฅ 2
7 3
1231234
์์ ์ถ๋ ฅ 2
3234
์์ ์ ๋ ฅ 3
10 4
4177252841
์์ ์ถ๋ ฅ 3
775841
ํ์ด
# Stack
# 2812๋ฒ ํฌ๊ฒ ๋ง๋ค๊ธฐ
n, k = map(int, input().split())
number = list(input())
answer = []
cnt = k
for num in number:
while answer and cnt > 0 and answer[-1] < num:
del answer[-1]
cnt -= 1
answer.append(num)
# .join(๋ฆฌ์คํธ) : ๋ฆฌ์คํธ ์ ๋ฌธ์๋ค์ ํฉ์ณ ๋ฌธ์์ด๋ก ๋ฐํ
print(''.join(answer[:n - k]))
728x90