-
[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