실험실
  • [백준] 2812번: 크게 만들기 - 파이썬
    2024년 11월 16일 10시 37분 45초에 업로드 된 글입니다.
    작성자: B1NK
    728x90

    문제

    N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.

    입력

    첫째 줄에 N과 K가 주어진다. (1 ≤ K < N ≤ 500,000)

    출력

    입력으로 주어진 숫자에서 K개를 지웠을 때 얻을 수 있는 가장 큰 수를 출력한다.

    코드

    import sys
    input = sys.stdin.readline
    
    n, k = map(int, input().split())
    numbers = input().rstrip()
    stack = []
    for number in numbers:
        while stack and stack[-1] < number and k > 0:
            stack.pop()
            k -= 1
        stack.append(number)
    if k > 0:
        print(''.join(stack[:-k]))
    else:
        print(''.join(stack))
    728x90
    댓글