Java

[프로그래머스] 큰 수 만들기

프로버티기 2025. 2. 26. 09:58

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42883

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 


아이디어

Stack 사용 

 

 

 

코드 

 

import java.io.*;
import java.util.*;
class Solution {
    static int N, K;
    static int max;
    static Stack<Character> stack;
    static char[] arr;
    public String solution(String number, int k) {
        arr = number.toCharArray();
        stack = new Stack<>();
        for(char a : arr){
            while(!stack.isEmpty() && a > stack.peek() && k-- > 0) {
                stack.pop();
            }
            stack.push(a);
        }
        StringBuilder sb = new StringBuilder();
        while(!stack.isEmpty()){
            sb.append(stack.pop());
        }
        String ans = sb.reverse().toString();
        if(k > 0) {
            ans = ans.substring(0, ans.length() - k);
        }
        return ans;
    }

}