본문 바로가기
알고리즘 문제풀이/SWEA

[SWEA 7701] 염라대왕의 이름 정렬(JAVA)

by 소보루:-) 2020. 3. 12.

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWqU0zh6rssDFARG

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

HashSet을 이용해서 중복을 제거해준 다음, list로 바꿔서 정렬해 주었다.

길이가 같을 때도 정렬을 해줘야 한다.

package day4;

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

public class Solution_d4_7701_염라대왕의이름정렬 {

	static int N;
	static StringBuilder sb;
	static HashSet<String> hs;
	public static void main(String[] args) throws Exception{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		int T=Integer.parseInt(br.readLine());
		for(int tc=1; tc<=T; tc++) {
			sb=new StringBuilder();
			sb.append("#"+tc+"\n");
			N=Integer.parseInt(br.readLine());
			hs=new HashSet<String>();
			for(int i=0; i<N; i++) {
				String s=br.readLine();
				hs.add(s);
			}
			List list = new ArrayList(hs);
			Collections.sort(list, new Comparator<String>() {

				@Override
				public int compare(String o1, String o2) {
					if(o1.length()==o2.length()) {
						return o1.compareTo(o2);
					}else return o1.length()-o2.length();
				}
			});
			for(int i=0; i<list.size(); i++) {
				sb.append(list.get(i)+"\n");
			}
		
			System.out.print(sb.toString());
		}
	}

}

댓글