본문 바로가기
프로그래밍/알고리즘 풀이

[알고리즘] 백준 1181번: 단어정렬 JAVA

by 방구석개발자 2021. 1. 7.
반응형

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

public class Main {
	
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n=Integer.parseInt(br.readLine());
		Set<String> strSet = new HashSet<String>();
		
		for(int i=0;i<n;i++) {
			strSet.add(br.readLine());
		}
		Iterator<String> it = strSet.iterator(); 
		String[] strArray = new String[strSet.size()];
		int j=0;
		while (it.hasNext()) {
			String str=it.next();
			strArray[j++]=str;
		}
		Arrays.sort(strArray, (s1,s2) ->{
			return (s1.length()-s2.length()!=0)?Integer.compare(s1.length(),s2.length()):s1.compareTo(s2);
		});
		
		for (String str : strArray) {
			System.out.println(str); 
		}
	}

}

자바 set으로 단어 중복을 거르고 Comparable 인터페이스의 compareTo() 메소드를 람다식으로 구현하여 문제를 풀었습니다.

반응형

댓글