알고리즘

[백준] JAVA 단어 정렬 (1181) - 리팩토링 필요

simba 2020. 12. 7. 22:19

전에 풀었던 문제 업로드입니다! 참고용으로만 보시면 좋을것같습니다. 저렇게 푸는것은 추천드리지않습니다...

 

문제

www.acmicpc.net/problem/1181

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

 

풀이

import java.util.*;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

public class Main {

        public static void main(String[] args) throws Exception {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            // 초반 세팅들...간략하게 다음엔....

            String[] words = new String[Integer.parseInt(br.readLine())];

            List<String> input = new ArrayList<>();

            for (int i = 0; i < words.length; i++) {

                words[i] = br.readLine();

            }

 

            //comparator 쓰기위한 준비

            for (int j = 0; j < words.length; j++) {

                input.add(words[j]);

            }

            Comparator<String> comparator = new Comparator<String>() {

 

                // comparator 리턴값은 음수, 양수 ,0인데 음수가 리턴되면 오른쪽인자가 아래로 내려감

                public int compare(String o1, String o2) {

                    if (o1.length() > o2.length()) {

                        return 1;

                    } else if (o1.length() < o2.length()) {

                        return -1;

                    } else {

                        return o1.compareTo(o2);

                    }

                }

            };

            Collections.sort(input, comparator);

            // 답

            List<String> result = new ArrayList<>();

            //중복 제거

            for (int s = 0; s < input.size(); s++) {

                if (!result.contains(input.get(s))) {

                    result.add(input.get(s));

                }

            }

 

            //출력

            for (int j = 0; j < result.size(); j++) {

                System.out.println(result.get(j));

            }

        }

 

    }

 

'알고리즘' 카테고리의 다른 글

[백준] DFS와 BFS (1260)  (0) 2020.12.07
[백준] JAVA 팰린드롬수 (1259)  (0) 2020.12.07
[백준] Java, C++ N-Queen (9663)  (0) 2020.12.07
[백준] JAVA 수찾기 (1920)  (0) 2020.12.07
[백준] JAVA - 괄호 (9012)  (0) 2020.12.07