import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] tmp = s.split(" ");
Arrays.sort(tmp, new MyComparator());
answer = tmp[0] + " " + tmp[tmp.length - 1];
for (String test : tmp) System.out.println(test);
return answer;
}
}
class MyComparator implements Comparator<String> {
public int compare(String s1, String s2) {
if (s1.charAt(0) == '-' && s2.charAt(0) == '-') return s2.compareTo(s1);
if (s1.charAt(0) == '-') return -1;
if (s2.charAt(0) == '-') return 1;
return s1.compareTo(s2);
}
}
제출하니 절반이 틀렸다고 나왔다. 이유를 모르겠다.
다음에 다시 도전해봐야겠다.
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] tmp = s.split(" ");
int[] num = new int[tmp.length];
for (int i = 0; i < num.length; i++) num[i] = Integer.parseInt(tmp[i]);
Arrays.sort(num);
answer = num[0] + " " + num[num.length - 1];
return answer;
}
}
그냥 parseInt를 써서 다 숫자로 바꿔주고 정렬시키니까 해결됐다.
처음에 String으로 Comparator를 구현해서 풀었을때는 compareTo가 앞에서부터 비교해나가는 방식이라 자릿수가 차이나면 잘못 정렬될때가 있었다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges