반응형
programmers.co.kr/learn/courses/30/lessons/42746?language=java#
Solution
직접 만든 sortAry 메소드 사용 시, logic은 맞지만, timeout이 난다.
quick sort 등으로 바꿔서 코딩해볼 필요 있음.
속도 향상을 위해 java에서 제공하는 Arrays.sort()를 사용하였음.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import java.util.Arrays;
class Solution {
private void sortAry(int[] numbers) {
int len = numbers.length;
int maxIdx;
for(int i=0 ; i<len-1 ; i++) {
maxIdx = i;
for(int j=i+1 ; j<len ; j++) {
int a = Integer.valueOf(numbers[maxIdx]+""+numbers[j]);
int b = Integer.valueOf(numbers[j]+""+numbers[maxIdx]);
if(a < b) {
maxIdx = j;
}
}
if(maxIdx!=i) {
int tmp = numbers[maxIdx];
numbers[maxIdx] = numbers[i];
numbers[i] = tmp;
}
}
}
public String solution(int[] numbers) {
String answer = "";
int len = numbers.length;
//sortAry(numbers);
String strAry[] = new String[len];
for(int i=0 ; i<len ; i++) {
strAry[i] = String.valueOf(numbers[i]);
}
Arrays.sort(strAry, (v1, v2)->(v2+v1).compareTo(v1+v2));
if(strAry[0].equals("0")) return "0";
StringBuilder sb = new StringBuilder();
for(int i=0 ; i<len ; i++) {
sb.append(strAry[i]);
}
answer = sb.toString();
return answer;
}
}
|
cs |
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - [Level 2]코딩테스트 연습 > 정렬 > H-Index (2) | 2021.04.03 |
---|---|
프로그래머스 - 월간 코드 챌린지 시즌1 > 삼각 달팽이 (0) | 2021.03.28 |
프로그래머스 - [Level 1]코딩테스트 연습 > 정렬 > K번째수 (0) | 2021.03.27 |