IT 기획의 길
백준 1181번 단어정렬 [JAVA] 본문
알고리즘 설계:
1. 같은 단어가 여러 번 입력된 경우 한번만 출력되게 하려면 중복을 허용하지않는 set을 사용한다
2. 출력을 할때 길이 순으로 오름차순 정렬을 한다
3. 만약 길이가 같은 문자라면 사전 순으로 출력한다
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
HashSet<String> str1=new HashSet<>();
for(int i=0;i<n;i++) {
String A="";
A=scan.next();
str1.add(A);
}
ArrayList<String> str2=new ArrayList<>(str1); //set을 ArrayList에 담는다
Collections.sort(str2,new Comparator<String>() {
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 s:str2) {
System.out.println(s);
}
}
}
'알고리즘(백준) > 정렬' 카테고리의 다른 글
백준 10814번 나이순 정렬 [JAVA] (0) | 2020.12.26 |
---|---|
백준 1026번 보물 [JAVA] (0) | 2020.12.26 |
백준 11650번 좌표 정렬하기 [JAVA] (0) | 2020.12.26 |
백준 11399번 ATM [JAVA] (0) | 2020.12.25 |