알고리즘/프로그래머스
[프로그래머스] 큰 수 만들기 -Java
dkwjdi
2020. 12. 29. 21:42
https://programmers.co.kr/learn/courses/30/lessons/42883
코딩테스트 연습 - 큰 수 만들기
programmers.co.kr
class Solution {
public String solution(String number, int k) {
StringBuilder answer = new StringBuilder();
int size=number.length();
int idx=0;
for(int len=size-k; len>0 ; len--) {
int num=0;
for(int i=idx; i<=size-len; i++) {
//System.out.println(number.charAt(i)-'0');
if(num<number.charAt(i)-'0') {
num=number.charAt(i)-'0';
idx=i+1;
}
}
answer.append(num);
}
return answer.toString();
}
}
소요시간 : 40분
우선 로직을 살펴보면
number : 4177252841
k : 4
number가 10자리이고 k가 4니까 6자리를 구해야합니다!
그러면 뒤에 5자리만 남겨놓고 앞에서 가장 큰 수를 구해줍니다!
수를 구했다면 그 수 다음부터 인덱스를 시작합니다
그리고 다시 뒤에 4자리만 남겨놓고 가장 큰 수를 구해줍니다! 반복하면 끝!
StringBuilder를 씁시다...
String으로 += 해서 하니까 시간초과 뜨는데 StringBuilder.append 사용하니까 시간초과가 안뜨네요!!
String += 사용
StringBuilder.append 사용
오늘도 하나 배워갑니다~