[プログラマー]貪欲法-製造大数



最初はスタックで解決したいと思っていました.すべての数値をスタックに入れ、1つずつ減算し、その値がスタックのtop値と比較されると、それ以上の場合は答えに追加します.そうでなければ、カウント変数に1を追加し、kと同じ場合はbreakを追加し、最後にスタックに残っているすべての値を答えに追加します.
(私もどういう意味か分かりませんが...まず問題の例は成功しました.でも採点結果は惨憺たるものでした.😥)
 public String solution(String number, int k) {
        String answer = "";
        int len = number.length();
        Stack<Integer> stack = new Stack<>();

        for (int i = len-1; i >= 0; i--) {
            stack.push(number.charAt(i)-'0');
        }

        int count = 0;
        while (true) {
            if (count == k) {
                while (!stack.isEmpty()) answer += String.valueOf(stack.pop()); 
                break;
            }
            int tmp = stack.pop();
            if (!stack.isEmpty() && tmp >= stack.peek() )  {
                for (int i = 0; i < answer.length(); i++) {
                    if (answer.charAt(i)-'0' < stack.peek())  {
                        count += answer.length();
                        answer = "";
                    }
                }
                answer += String.valueOf(tmp);
            }
            else  {
                count++;
            }
        }

        return answer;
    }