백준 문제풀이

1181. 단어정렬 (자바, Java)

뮤츠 2022. 10. 1. 22:05

 

그냥 Arrays.sort로 정렬해주면 중복단어를 제거할 수가 없습니다.

그래서, 이전과 똑같이 Arrays.sort 를 Overide하여 풀었습니다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;

public class Java1181 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		
		String[] str = new String[n];
		
		for (int i=0; i<n; i++) {
			str[i] = br.readLine();
		}
				
		Arrays.sort(str, new Comparator<String>() {
			
			//Override
			public int compare(String str1, String str2) {
				
				if (str1.length() == str2.length()) {
					return str1.compareTo(str2);
				} else {
					return str1.length() - str2.length();
				}				
			}
			
		});
		
		StringBuilder sb = new StringBuilder();
		
		sb.append(str[0]+"\n");
		
		for (int i=1; i<n; i++) {
			
			if (str[i].equals(str[i-1])) {				
			} else {			
			sb.append(str[i]+"\n");
			}
		}
		
		System.out.println(sb);
		

	}

}