내 코드 (틀림)
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
int max = 0;
// 10으로 나눴을 때 나머지가 큰 숫자 순으로 정렬하면 됨.
Collections.sort(numbers, (a) -> (a % 10));
for(int i : numbers) {
answer += Integer.toString(i);
}
return answer;
}
}
10으로 나눴을 때 나머지가 큰 숫자 순으로 정렬하면 되겠다- 싶어서 일단 저렇게 썼다.
정렬 기준을 사용자가 지정해서 정렬할 때는 Comparator를 써야한다고 해서 참고 사례도 살펴보고..
또 나름 30분 고민하고 다른 답을 찾아보기로 했다...🙏
[프로그래머스 level_2] 가장 큰 수 for JAVA
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가
tosuccess.tistory.com
[프로그래머스 Lv.2] 가장 큰 수 java
문제설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중
ivory-room.tistory.com
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] str = new String[numbers.length];
for(int i=0 ; i < numbers.length ; i++) {
str[i] = String.valueOf(numbers[i]);
}
Arrays.sort(str, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return (b+a).compareTo(a+b);
}
});
if(str[0].equals("0")) return "0";
return String.join("", str);
}
}
int 배열을 String 배열로 만들고.. (8-10번째 줄)
내림차순 정렬하고... (12-17번째 줄)
- 내림차순 : (o2+o1).compareTo(o1+o2);
- 오름차순 : (o1+o2).compareTo(o1+o2);
첫 번째 값이 0 이면 "0" 리턴하고.. (19번째 줄)
0이 아니면 문자열 더해주기 (String.join()
이용) (21번째 줄)
우와 .... 정렬부터 못 하는 사람 나야 나...
갈 길이 멀당
(참고)
자바 정렬 Java Comparable Comparator 확실히 알고 넘어가기
배열이나 Collection 프레임워크 등에서 sort() 를 사용하면 컴퓨터가 알아서 정렬을 해준다.여기서 사용되는 sort() 는 Comparable 구현에 의해 정렬된 것인데, 오늘은 자바 정렬 Java Comparable과 Comparator에
cwondev.tistory.com
[Java] 객체 정렬하기 1부 - Comparable vs Comparator
Engineering Blog by Dale Seo
www.daleseo.com
13.3: String.Join 을 이용하여 문자열 배열을 이어붙이기
Section 13.3: String.Join 을 이용하여 문자열 배열을 이어붙이기 String.Join 메소드를 사용하면 문자열 배열 내의 복수개의 요소들을 이어붙일 수 있다 (concatenate). string[] value = {"apple", "orange", "grape", "pea
nochoco-lee.tistory.com
[JAVA] compareTo() 사용법. 문자열/숫자 비교
compareTo() // 숫자형 비교 int compareTo(NumberSubClass referenceName) // 문자열 비교 int compareTo(String anotherString) compareTo()는 두개의 값을 비교하여 int 값으로 반환해 준다. compareTo()는 위에서 적어둔 것 처럼
doitdoik.tistory.com
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 폰켓몬 (0) | 2023.02.22 |
---|---|
[프로그래머스/Lv. 1] 완주하지 못한 선수 (0) | 2023.02.21 |
[프로그래머스/Lv. 1] K번째수 (0) | 2023.02.21 |
[프로그래머스/Lv. 1] 가운데 글자 가져오기 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 나누어 떨어지는 숫자 배열 (0) | 2023.02.20 |