문제
해결 방안
1. HashSet을 이용하여 입력을 받아 중복된 경우를 제거해준다.
2. ArrayList에 담아서 해당 ArrayList를 Collections.sort()를 이용하여 정렬해준다.
이 때, new Comparator를 사용하여 길이가 짧은 것과 길이가 같으면 사전순으로 정렬하는 코드를 구현해준다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int n = Integer.parseInt(str);
HashSet<String> set = new HashSet<>();
for(int i=0; i<n; i++) {
set.add(br.readLine());
}
List<String> words = new ArrayList<>(set);
Collections.sort(words, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if(s1.length() < s2.length())
return -1;
else if(s1.length() > s2.length())
return 1;
else
return s1.compareTo(s2);
}
});
for(String word : words) {
System.out.println(word);
}
}
}
'Development Logs > Algorithms' 카테고리의 다른 글
[JAVA] 백준 7568번 : 덩치 (브루트포스) (0) | 2020.10.22 |
---|---|
[JAVA] 백준 2667번 : 단지번호붙이기(DFS) (0) | 2020.10.21 |
[JAVA] 백준 1012번 : 유기농 배추(DFS) (0) | 2020.10.15 |
[JAVA] 백준 2178번 : 미로 탐색(BFS+DP) (0) | 2020.10.13 |
[JAVA] 백준 2606번 : 바이러스 (DFS) (0) | 2020.10.13 |