number.length() - k
라고 할 수 있다.다음과 같은 숫자를 예를 들어서 문제 로직을 풀이해보자.
nubmer = 1231234, k = 3
7-3
이므로 4개이다.위 로직을 통해서 코드를 짰을 때, 아래처럼 구현할 수 있다.
class Solution {
public String solution(String number, int k) {
return greedy(number, k);
}
public static String greedy(String number, int k) {
StringBuilder answer = new StringBuilder();
int n = number.length() - k; // 뽑아야하는 숫자의 수
int start = 0;
while (start < number.length() && answer.length() != n) {
int leftNum = k + answer.length() + 1; // 남아있어야 하는 숫자 개수.
int max = 0;
for (int i = start; i < leftNum; i++) {
int charAtNum = number.charAt(i) - '0'; // char에서 숫자를 구하는 방법
if(max < charAtNum) {
max = charAtNum;
start = i + 1;
}
}
answer.append(max);
}
return answer.toString();
}
}