알고리즘 문제풀이/백준

#1181 : 단어 정렬

모항 2022. 3. 26. 22:56

풀이방법

사용된 것:

Comparator 오버라이딩

정렬

 

2022.03.26

Comparator를 오버라이딩한 후 Arrays.sort()를 사용해 정렬하면 된다.

 

코드

Java(2022.03.26, Comparator를 미리 정의해둔 뒤 불러내는 방법)

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

public class Main {
	
	static String[] arr;

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		
		//Comparator Overriding
		Comparator<String> cp = new Comparator<String>() {

			@Override
			public int compare(String str1, String str2) {
				// TODO Auto-generated method stub
				if (str1.length()==str2.length()) {
					return str1.compareTo(str2);
				}
				else return str1.length() - str2.length();
			}
			
		};
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		arr = new String[n];
		for(int i = 0; i<n; i++) {
			arr[i] = br.readLine();
		}
		
		Arrays.sort(arr, cp);
		
		System.out.println(arr[0]);
		for(int i = 1; i<n; i++) {
			if(!arr[i].equals(arr[i-1]))System.out.println(arr[i]);
		}
	}

}

Java(2022.03.26, Arrays.sort()문 내에서 Comparator를 정의하는 방법)

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

public class Main {
	
	static String[] arr;

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		arr = new String[n];
		for(int i = 0; i<n; i++) {
			arr[i] = br.readLine();
		}
		
		Arrays.sort(arr, new Comparator<String>() {

			@Override
			public int compare(String str1, String str2) {
				// TODO Auto-generated method stub
				if(str1.length()==str2.length()) {
					return str1.compareTo(str2);
				}else return str1.length() - str2.length();
			}
			
		});
		
		System.out.println(arr[0]);
		for(int i = 1; i<n; i++) {
			if(!arr[i].equals(arr[i-1]))System.out.println(arr[i]);
		}
	}

}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#15312 : 이름 궁합  (0) 2022.03.27
#1620 : 나는야 포켓몬 마스터 이다솜  (0) 2022.03.27
#10951 : A + B - 4  (0) 2022.03.26
#1932 : 정수 삼각형  (0) 2022.03.24
#2839 : 설탕 배달  (0) 2022.03.24