현재
[Java][BaekJoon][1181] 단어정렬(Comparator) 본문
<문제>
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
<힌트>
더보기
・compare
・Colletions
・sort
<풀이코드>
더보기
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Set<String> set = new HashSet<>();
sc.nextLine();
for(int i = 0; i < n ; i++){
set.add(sc.nextLine());
}
List<String> list = new ArrayList<>(set);
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String str1, String str2){
if(str1.length() != str2.length()){
return Integer.compare(str1.length(), str2.length()); // str2로 정렬하면 내림차순, str1로 정렬하면 오름차순
} else {
return str1.compareTo(str2); // 길이가 같으면 알파벳순으로 정렬
}
}
});
for(String s : list){
System.out.println(s);
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
| [Java][BaekJoon][11866] 요세푸스 문제0(Queue) (0) | 2024.05.04 |
|---|---|
| [Java][BaekJoon][10814] 나이순정렬(Comparator) (0) | 2024.05.04 |
| [Java][Bronze V] 오늘 날짜 - 10699 (Date, DateFormat) (1) | 2023.11.25 |
| [Java][BaekJoon][2581] 소수 (0) | 2023.10.23 |
| [Java][BaekJoon][1978] 소수 찾기 (0) | 2023.10.22 |