[프로그래머스 - JAVA] 탐욕법(Greedy) - Level 2 큰 수 만들기
class Solution {
public String solution(String number, int k) {
String answer = "";
int len = number.length();
int index = 0;
char max;
for(int i = 0; i < len - k; i++){
max = '0';
for(int j = index; j <= k + i; j++){
if(max < number.charAt(j)){
max = number.charAt(j);
index = j + 1;
}
if(max == '9')
break;
}
answer += max + "";
}
return answer;
}
}
import java.util.Stack;
class Solution {
public String solution(String number, int k) {
char[] result = new char[number.length() - k];
Stack<Character> stack = new Stack<>();
for (int i=0; i < number.length(); i++) {
char c = number.charAt(i);
while (!stack.isEmpty() && stack.peek() < c && k-- > 0) {
stack.pop();
}
stack.push(c);
}
for (int i=0; i<result.length; i++) {
result[i] = stack.get(i);
}
return new String(result);
}
}