반응형
난이도 2의 가장큰수, 쉽게 봤다가. 큰코 다칠뻔 ㅋ
int 형 배열을, String 형 배열로 바꿔서 비교 및 출력....
우선, int 형 배열을 바꿔야한다.
for(int i =0;i<numbers.length;i++)
{
answers[i] = String.valueOf(numbers[i]);
}
요로케해서, answers[]라는 String 배열에 담아준다.
그리고, Arraysort를 해주면되는데, 이때 그냥 기존에 정의된 대로 쓰면, 오류가 있다
어떤 오류나, 만약에 2번째 3,30,34,5,9 로 numbers가 주어지면,
9534303이 출력이 된다. 그러면 어떻게 하냐...?
@Override하면된다 ㅋ
Arrays.sort(result, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return ((o2 + o1).compareTo(o1 + o2));
}
});
3,31 일때 331이냐 313이냐 뭐 이런걸 더 큰걸 찾아서 return 해주는 것이다. 저 return 대로, sort가 정렬이된다.
추가로 실패때문에 all 0인 케이스에는 그냥 return "0"했다.
정렬 후에 0이 첫번째라면, 그냥 전부 0으로 간주할수 있기 때문이다.
오늘도 ㅅㄱ
반응형
'Algorithm > [Etc]' 카테고리의 다른 글
[프로그래머스]그리드 - 체육복 (0) | 2021.07.11 |
---|---|
[프로그래머스]H-Index 문제 (0) | 2021.07.10 |
[프로그래머스] K번째 수, 정렬 관련 풀이 (0) | 2021.07.06 |
[자료구조] 선택정렬/삽입정렬/퀵정렬 개념 및 예제 코딩 (0) | 2021.07.05 |
Stream 객체 api 관련 데이터 처리 공부 (0) | 2021.07.05 |