백준 sort 단어정렬

정호윤·2023년 3월 19일

자바

목록 보기
39/46

백준문제링크

문자열을 정렬하는 문제이다.sort의 comparator를 구현해주면 된다.

import java.util.*;
import java.io.*;

public class Main {
	
	public static void main(String args[]) throws IOException {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        sc.nextLine();
        String[] arr = new String[N];
        for(int i=0;i<N;i++){
            arr[i]=sc.nextLine();
        }
        // Arrays.sort(arr,(e1,e2)->{
        //     if(e1.length()==e2.length()) 
        //         return e1.compareTo(e2);
        //     else    
        //         return e1.length()-e2.length();
        // });

        Arrays.sort(arr,new Comparator<String>(){
            public int compare(String s1,String s2){
                if(s1.length()==s2.length())
                	// 문자열을 사전순으로 정렬해준다.
                    return s1.compareTo(s2);
                else
                    return s1.length()-s2.length();
            }
        });
        //일단 첫번째거를 따로 출력하고
        System.out.println(arr[0]);
        // 앞에거를 기준으로 뒤어거를 비교해서 String이 똑같은지를 검사한다.
        for(int i=1;i<N;i++){
            if(!(arr[i].equals(arr[i-1])))
                System.out.println(arr[i]);
        }
    }
}
profile
개발자로 취직을 희망합니다.

0개의 댓글