ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [1181] 단어 정렬 - Java
    알고리즘 연습 2022. 2. 8. 09:54

     

    1. 배운점

    Comparator 활용

    https://docs.oracle.com/javase/8/docs/api/

     

    Java Platform SE 8

     

    docs.oracle.com

    2. 개선할 점

    - 다음엔 람다식을 활용해서 풀어보도록 한다.

     

    3. 궁금한 점

     

    4. 풀이

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.Arrays;
    import java.util.Comparator;
    
    public class Main {
    	
    	public static void main(String [] args) {
    		
    		// Import Reader
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		
    		try {
    			// Read  the number of words
    			int words = Integer.parseInt(br.readLine());
    			
    			// Allocate values to the array
    			String [] arr = new String [words];
    			int i = 0;
    			
    			while(i < words) {
    				arr[i++] = br.readLine();
    			}
    			
    			// Sorting  using Comparator
    			Arrays.sort(arr, new Comparator<String>() {
    				
    				// Sorting method using compare
    				public int compare(String str1, String str2) {
    					
    					// If lengths are same
    					if(str1.length() == str2.length()) {
    						return str1.compareTo(str2);
    					}
    					
    					// etc
    					else {
    						return str1.length() - str2.length();
    					}
    				}
    			});
    			
    			// Printing the result using BufferedWriter
    			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    			
    			bw.write(arr[0]+'\n');
    			
    			for(int j = 1; j < words; j++) {
    				
    				if(!arr[j].equals(arr[j-1])) {
    					bw.write(arr[j]+'\n');
    				}
    			}
    			bw.flush();
    			
    		} catch (NumberFormatException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }

     

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

    [10828] 스택 - Java  (0) 2022.02.09
    [11651] 좌표 정렬하기2 - Java  (0) 2022.02.08
    [2935] 소음 - Java  (0) 2022.02.07
    [11319번] Count Me In - Java  (0) 2022.01.06
    [1436번] 영화감독 슘 - Java  (0) 2021.11.23
Designed by Tistory.