문제 출처 : https://www.acmicpc.net/problem/1181
풀이 ) 객체 간 비교를 가능하게 해주는 Comparable 인터페이스 이용해서 비교해주면 된다.
여기선 사전식 오름차순 정렬이라 Comparable 인터페이스를 사용했지만,
String 사전 역순이였을 경우에는 Comparable이 아니라 Comparator를 사용하는 것이 좋을 것이다.
소스코드 )
import java.util.*;
class Words implements Comparable<Words> {
public String str;
Words(String str) {
this.str = str;
}
@Override
public int compareTo(Words words) {
if (this.str.length() == words.str.length()) return this.str.compareTo(words.str);
else return this.str.length() - words.str.length();
}
}
class Main {
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
ArrayList<Words> arr = new ArrayList<>();
for(int i=0; i<n; i++) {
String str = sc.next();
arr.add(new Words(str));
}
Collections.sort(arr);
for(int i=0; i<n; i++) {
if (i == 0) System.out.println(arr.get(i).str);
else if (i > 0 && !arr.get(i).str.equals(arr.get(i-1).str)) System.out.println(arr.get(i).str);
}
}
}
'Java 코딩테스트 공부 > Java 백준 문제풀이' 카테고리의 다른 글
자바 백준 7795번 문제 - 먹을 것인가 먹힐 것인가 (0) | 2022.11.03 |
---|---|
자바 백준 10828, 10845, 10866번 문제 - 스택, 큐, 덱 (0) | 2022.10.21 |
자바 백준 2108번 문제 - 통계학 (0) | 2022.10.20 |
같은 정답 다른 무게 + 무서운 이야기 (0) | 2022.08.16 |
자바 백준 16472번 문제 - 고냥이 (0) | 2022.08.11 |