상세 컨텐츠

본문 제목

단어 정렬

코딩테스트

by dofury 2023. 5. 9. 20:52

본문

728x90

 

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        Set<String> wordsSet = new HashSet<String>(); //중복 제거용 세트 선언
        List<String> words;//정렬용 리스트 선언


        int count = Integer.parseInt(br.readLine());// 값을 공백 기준으로 여러개 입력받는다.

        for(int i = 0; i < count; i++){ //중복제거
            String word = br.readLine();
            wordsSet.add(word);

        }

        words = new ArrayList<>(wordsSet);

        Collections.sort(words, new Comparator<String>() {// Comparator 인터페이스를 적용하여 정렬 알고리즘을 구현

            @Override
            public int compare(String o1, String o2) {
                if(o1.length() == o2.length()){
                    return o1.compareTo(o2);
                }else{
                    return Integer.compare(o1.length(), o2.length());
                }
            }
        });


        for(String word : words){
            bw.write(word);
            bw.newLine();
        }


        bw.flush();
        bw.close();

    }
}

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

728x90

'코딩테스트' 카테고리의 다른 글

  (0) 2023.05.12
정사각형  (0) 2023.05.09
나는 요리사다  (0) 2023.05.09
수리공 항승  (0) 2023.05.09
행렬의 곱셈(2레벨)  (0) 2023.01.25

관련글 더보기

댓글 영역