백준 1181번 Arrays.sort()를 직접 구현하는 문제 꼭 계속 복습하기

byeol·2023년 1월 19일
0

일단

처음에 2차원 배열로 하자!
arr[길이][단어들]
엥? 그러면 만약에 100개의 단어가 있다면 arr[100][100]
중간에 버려지는 공간이 너무 많아!

두번째 든 생각
TreeMap<Integer, ArrayList<String>>

이렇게 1시간이 넘어가니
다른 사람의 풀이를 봐야겠다는 생각이 들어서
구글링을 해보았다.

아주아주 중요한 풀이를 보게 되었다.

https://st-lab.tistory.com/112

이 분의 풀이인데 이 풀이를 이해하기 위해서

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();	 
    	 }	 
     }); 
profile
꾸준하게 Ready, Set, Go!

0개의 댓글

관련 채용 정보