[백준 2812] 크게 만들기

Junyoung Park·2022년 4월 3일
0

코딩테스트

목록 보기
337/631
post-thumbnail

1. 문제 설명

크게 만들기

2. 문제 분석

스택을 통해 현재 가장 위에(즉 뒷자리) 있는 숫자보다 들어오는 숫자가 크면, (변경 가능한 시점에서) 바꾸는 게 더 큰 수를 만들 수 있는 방법이다.

3. 나의 풀이

import sys

n, k = map(int, sys.stdin.readline().rstrip().split())
number = sys.stdin.readline().rstrip()
stack = []
cnt = 0
for num in number:
    num = int(num)
    if cnt < k:
        if not stack: stack.append(num)
        else:
            while cnt < k and stack and stack[-1] < num:
                stack.pop(-1)
                cnt += 1
            stack.append(num)
    else:
        stack.append(num)

while cnt < k:
    stack.pop(-1)
    cnt += 1

print(*stack, sep='')
profile
JUST DO IT

0개의 댓글