Algorithm/문제 풀이 / / 2020. 3. 12. 10:34

[SWEA_7701 - JAVA] 염라대왕의 이름 정렬

반응형

문제

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWqU0zh6rssDFARG&

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

풀이

  • 이름의 길이가 짧을수록, 사전 순으로 정렬.
  • 중복은 허용되지 않는 문제.
  • HashSet을 사용하여 중복 제거.
  • 문자열 정렬을 위해 HashSet을 ArraysList로 변환.
  • comparator를 사용한 정렬.
  • Comparator 사용 및 문자열 정렬에 도움이 되는 문제.

 

순서

  1.  HashSet을 활용 입력을 받으며 중복 제거.
  2. 정렬을 위한 HashSet을 ArrayList로 변환
  3. 조건을 위한 Comparator Override
    - 길이 오름차순.
    - 길이가 같은 경우 사전순.
  4. 출력
 
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
public class Solution {
 
    static StringBuilder sb = new StringBuilder();
    static int N;
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int tc = Integer.parseInt(br.readLine());
        for (int test = 1; test <= tc; test++) {
            sb.append("#" + test + "\n");
            N = Integer.parseInt(br.readLine());
            HashSet<String> names = new HashSet<String>();
 
            for (int i = 0; i < N; i++) {
                names.add(br.readLine()); // 1. 중복 제거
            }
 
            // ================ 입력 ================
 
            ArrayList<String> nameList = new ArrayList<String>(names); // 2. 정렬을 위한 변환
            Collections.sort(nameList, new Comparator<String>() { // 3. 조건을 위한 Comparator
                @Override
                public int compare(String s1, String s2) {
                    if (s1.length() == s2.length()) { // 4. 길이가 같을 경우 사전순
                        return s1.compareTo(s2);
                    }
                    return s1.length() - s2.length(); // 5. 길이가 짧은순
                }
            });
 
            for (String i : nameList) {
                sb.append(i + "\n");
            }
        }
        System.out.println(sb);
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유