반응형
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
Set<String> strSet = new HashSet<String>();
for(int i=0;i<n;i++) {
strSet.add(br.readLine());
}
Iterator<String> it = strSet.iterator();
String[] strArray = new String[strSet.size()];
int j=0;
while (it.hasNext()) {
String str=it.next();
strArray[j++]=str;
}
Arrays.sort(strArray, (s1,s2) ->{
return (s1.length()-s2.length()!=0)?Integer.compare(s1.length(),s2.length()):s1.compareTo(s2);
});
for (String str : strArray) {
System.out.println(str);
}
}
}
자바 set으로 단어 중복을 거르고 Comparable 인터페이스의 compareTo() 메소드를 람다식으로 구현하여 문제를 풀었습니다.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
백준 10867번 : 중복 빼고 정렬하기 JAVA (0) | 2021.01.14 |
---|---|
[알고리즘] 백준 11650, 11651번: 좌표 정렬하기, 좌료 정렬하기2 JAVA (0) | 2021.01.14 |
[알고리즘] 백준 1026번: 보물 JAVA (0) | 2021.01.03 |
[알고리즘] 백준 10866번: 덱 JAVA (0) | 2020.12.27 |
[알고리즘] 백준 10828번: 스택 JAVA (0) | 2020.12.25 |
댓글