알고리즘

[Greedy]2812

리하이 2020. 11. 8. 22:34

n,m=map(int,input().split(' '))
x_l=(list(map(int,input())))
#자릿수 : n-m
before=0
max_val=0
s=''
temp_s=[]
cur_p=n-m
for idx,i in enumerate(x_l):
    tt=min((n-m),len(x_l)-idx)

    if tt!=cur_p:
        s+=str(temp_s.pop(0))
        cur_p=tt
    while True:
        if len(temp_s)==0:
            temp_s.append(i)
            break
        if i>temp_s[-1]:
            temp_s.pop()
        else:
            temp_s.append(i)
            break
if len(list(s))!=n-m:
    s+=str(temp_s.pop(0))
    print(s)
else:
    print(s)

거의 3일 묵히면서 풀었다.. 스택을 사용한다는 것이 키!