2022/03/07 2

[백준1946] - 신입 사원

[문제] https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net [문제풀이 전] 예전에 풀어봤던 문제를 다시 풀어봤는데 그때에 비해 시간을 덜 쓰게 됐는데 차이를 보니 Arrays.sort 와 Collections.sort 의 정렬의 속도 차이가 있다는 사실을 알았다. Arrays.sort() 는 Dual-Pivot Quict sort 를 활용하는데 시간복잡도가 O(nlongn) ~ O(n^2) 의 속도를 낸다. Collectio..

백준 문제풀이 2022.03.07

Comparator 와 Comparable - JAVA

처음 이 개념을 접했을 때는 뭐지.. 인터페이스는 뭐고, 객체는 뭐고 어떻게 쓰는 거지 했는데 공부하다 보니 인터페이스도 알게 되고, 객체도 알게 되니 '아! 이래서 이렇게 쓰는구나' 하고 깨달음을 얻었다. 그래서 혹시 만약 인터페이스나 객체 등 여기 관련된 어떤 개념을 모른다면 그부분을 먼저 배우면 빠르게 습득이 가능할 것입니다. 아마 위 개념을 모른다면 Arrays.sort( )을 호출하면 알아서 배열을 정리하는 것으로 생각을 하셨을 가능성이 높습니다. 사실 이 정렬기능은 Comparable의 구현에 의해 정렬되었던 것입니다. 정렬을 하려면 '기준'이 필요합니다. Comparator와 Comparable은 모두 인터페이스로 객체를 비교할 수 있도록 만들게 하고, 이것을 사용하려고하면 인터페이스니 선언..