2812: 크게 만들기

ewillwin·2023년 11월 4일
0

Problem Solving (BOJ)

목록 보기
230/230

문제 링크

2812: 크게 만들기


구현 방식

  • stack + greedy로 풀었다
  • 왼쪽부터 오른쪽으로 for문을 돌면서, K만큼 while문을 돌면서 stack에 가장 큰 숫자가 앞쪽에 위치하도록 해주었다

코드

import sys

N, K = map(int, sys.stdin.readline().strip().split()); number = list(map(int, list(sys.stdin.readline().strip())))
stack = []
for i in range(N):
    while stack and stack[-1] < number[i] and K > 0: stack.pop(); K -= 1 #가장 큰 숫자가 앞쪽에 위치하도록
    stack.append(number[i])
if K>0: print("".join(map(str, stack[:-K])))
else: print("".join(map(str, stack)))
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글