일단
처음에 2차원 배열로 하자!
arr[길이][단어들]
엥? 그러면 만약에 100개의 단어가 있다면 arr[100][100]
중간에 버려지는 공간이 너무 많아!
두번째 든 생각
TreeMap<Integer, ArrayList<String>>
이렇게 1시간이 넘어가니
다른 사람의 풀이를 봐야겠다는 생각이 들어서
구글링을 해보았다.
아주아주 중요한 풀이를 보게 되었다.
이 분의 풀이인데 이 풀이를 이해하기 위해서
https://st-lab.tistory.com/243
Comparator과 Comparable이라는 두개의 인터페이스를 비교하는 글을 읽어보는 것이 도움이 될거 같다.
결론은 Arrays.sort 메소드에 Comparator 을 구현하는 것이며
주요 코드는 아래와 같다.
익명 객체라는 개념을 사용하였다.
Arrays.sort(arr,new Comparator<String>() {
public int compare(String s1, String s2) {
if(s1.length()==s2.length())
return s1.compareTo(s2);
else
return s1.length()-s2.length();
}
});