728x90
HashSet과 Arrays.sort라는 개념을 익혀야 쉽게 해결할 수 있습니다.
HashSet을 이용하여 중복된 값을 사전에 제거해주고
HashSet을 배열로 변환 후
그 배열을 문제에서 요구하는대로
Arrays.sort 함수를 이용하여
사전순으로 정렬, 길이순으로 정렬을 순서대로 해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); HashSet<String> hs = new HashSet<String>(); int N = sc.nextInt(); String[] alp; for(int i=0;i<N;i++) { hs.add(sc.next()); } alp = new String[hs.size()]; hs.toArray(alp); Arrays.sort(alp); Arrays.sort(alp, new Comparator<String>() { @Override public int compare(String o1, String o2) { return Integer.compare(o1.length(), o2.length()); } }); for (String string : alp) { System.out.println(string); } } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 1100번 하얀 칸 (0) | 2018.04.21 |
---|---|
[백준][Java] 1026번 보물 (0) | 2018.04.21 |
[백준][Java] 5543번 상근날드 (0) | 2018.04.21 |
[백준][Java] 10872번 팩토리얼 (0) | 2018.04.21 |
[백준][Java] 10814번 나이순 정렬 (0) | 2018.04.21 |