이전 코드
import java.util.*;
import java.util.regex.Pattern;
class Solution {
public String solution(String number, int k) {
StringBuilder stringBuilder = new StringBuilder();
int ansLen = number.length() - k;
if(Pattern.matches(number.charAt(0) + "{" + number.length() +"}", number)){
return number.substring(0, number.length() - k);
}
if(number.equals("0")){
return "0";
} else {
while (true){
if (k > 0){
String subNum = number.substring(0, k + 1);
int maxNum = -1;
int maxNumIndex = 0;
for (int i = 0 ; i < subNum.length() ; i++){
if(Character.getNumericValue(subNum.charAt(i)) == 9){
maxNum = 9;
maxNumIndex = i;
break;
}
if(maxNum < Character.getNumericValue(subNum.charAt(i))){
maxNum = Character.getNumericValue(subNum.charAt(i));
maxNumIndex = i;
}
}
stringBuilder.append(String.valueOf(maxNum));
number = number.substring(maxNumIndex + 1);
k -= maxNumIndex;
if(stringBuilder.toString().length() == ansLen){
return stringBuilder.toString();
}
} else{
stringBuilder.append(number);
return stringBuilder.toString();
}
}
}
}
}
최근 코드
import java.util.*;
class Solution {
public String solution(String number, int k) {
String answer = "";
StringBuilder sb = new StringBuilder();
int maxVal;
int index = 0;
for (int i = 0 ; i < number.length() - k ; i++){
maxVal = 0;
for (int j = index ; j <= k + i ; j++ ){
if (maxVal < number.charAt(j) - '0'){
maxVal = number.charAt(j) - '0';
index = j + 1;
}
}
sb.append(maxVal);
}
return String.valueOf(sb);
}
}
'프로그래머스 - JAVA' 카테고리의 다른 글
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 (0) | 2021.06.14 |
---|---|
코딩테스트 연습 > 탐욕법(Greedy) > 구명보트 (0) | 2021.06.13 |
코딩테스트 연습 > 탐욕법(Greedy) > 조이스틱 (0) | 2021.06.13 |
코딩테스트 연습 > 탐욕법(Greedy) > 체육복 (0) | 2021.06.13 |
코딩테스트 연습 > 완전탐색 > 카펫 (0) | 2021.06.13 |