1. 문제 설명
어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.
예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.
문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요.
2. 나의 코드
import java.util.*;
class Solution {
public String solution(String number, int k) {
String answer = "";
String [] numbers = number.split("");
int [] n = new int[numbers.length];
int windowF;
int windowL = k + 1; // n - (n-k-1) 이므로...
int max = 0;
int index = 0;
//String to int
for(int i =0;i < n.length;i++) {
n[i] = Integer.parseInt(numbers[i]);
}
// find max between 0 and n.length - k
for(int i = 0; i < n.length - k;i++) {
windowF = index;
for(int j = windowF; j < windowL; j++){
if(max < n[j]){
max = n[j];
index = j+1;
}
}
if (windowL < n.length)
windowL += 1;
answer += String.valueOf(max);
max = 0;
}
return answer;
}
}
3. 보완
대체 테스트 10이 뭐길래 시간초과가 되는지 모르겠다....!!!!!!!!!!!!!!!!!11
'Computer Science > 알고리즘 문제풀이' 카테고리의 다른 글
[Programmers] #11 프린터[JAVA] (0) | 2018.09.27 |
---|---|
[Programmers] #10 전화번호 목록 [JAVA] (0) | 2018.09.24 |
[Programmers] #8 가운데 글자 가져오기 [Python] (0) | 2018.09.22 |
[Programmers] #7 체육복 [JAVA] (0) | 2018.09.21 |
[Programmers] #6 모의고사[JAVA] (0) | 2018.09.20 |