하루에 한 문제
[프로그래머스] 큰 수 만들기 -Java 본문
https://programmers.co.kr/learn/courses/30/lessons/42883
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 사용
오늘도 하나 배워갑니다~
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Summer/Winter Coding(~2018)] 방문길이 -Java (0) | 2021.01.10 |
---|---|
[프로그래머스 2018 KAKAO BLIND RECRUITMENT] 셔틀버스 -Java (0) | 2021.01.03 |
[프로그래머스 Summer/Winter Coding(~2018)] 숫자게임 -Java (0) | 2020.12.29 |
[프로그래머스] 멀리 뛰기 -Java (1) | 2020.12.29 |
[프로그래머스] 야근지수 -Java (0) | 2020.12.29 |
Comments