[백준 / java] 1181 : 단어 정렬

chaen-ing·2024년 3월 20일
0

1일1백준

목록 보기
2/18
post-thumbnail

https://www.acmicpc.net/problem/1181

업로드중..

package boj1181;
import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[]args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        List <String> str = new ArrayList<>();
        int N = Integer.parseInt(br.readLine());

        for(int i = 0; i < N; i++){
            str.add(br.readLine());
        }

        Collections.sort(str, new Comparator<String>() {
                    @Override
                    public int compare(String o1, String o2) {
                        if (o1.length() == o2.length()) // 문자열 길이 같은경우
                            return o1.compareTo(o2);
                        return o1.length() - o2.length();
                    }
                });

        System.out.println(str.get(0));
        for(int i = 1; i < N; i++){
            if(!str.get(i).equals(str.get(i-1))){
                System.out.println(str.get(i));
            }
        }
    }
}

Comparator

  • 양수 : 자리 바뀜
  • 0, 음수 : 그대로

길이를 오름차순으로 정렬해야하므로 o1이 o2보다 길이가 길면 양수가 나와 둘의 자리가 바뀌게한다.

길이가 같은 경우 compareTo로 비교한다.

중복은 무시하므로 같은건 출력하지 않도록 한다.

profile
💻 개발 공부 기록장

0개의 댓글

관련 채용 정보