-
[백준] 1181번 : 단어 정렬 - 자바(JAVA)알고리즘/백준 2022. 8. 21. 00:01
https://www.acmicpc.net/problem/1181
문제 해석
알파벳으로 이루어진 N개의 문자열을 정렬해야 합니다.
- 길이가 짧은 것부터
- 길이가 같으면 사전 순으로
문제 풀이 전 설계
람다를 활용하여 Comparator를 구현하고 스트림을 활용하여 Set 을 List로 변환하고자 합니다.코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; import java.util.stream.Collectors; public class Main_1181_단어정렬 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); Set<String> word = new HashSet<>(); for(int i=0; i<N; i++){ word.add(br.readLine()); } List<String> wordToList = word.stream() .collect(Collectors.toList()); Collections.sort(wordToList, (s1, s2) -> s1.length() - s2.length() == 0 ? s1.compareTo(s2) : s1.length() - s2.length()); StringBuilder sb = new StringBuilder(); for(String cur : wordToList){ sb.append(cur + "\n"); } System.out.print(sb.toString()); } }
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2164번 : 카드2 - 자바(JAVA) (0) 2022.08.24 [백준] 16953번 : A -> B - 자바(JAVA) (0) 2022.08.22 [백준] 1018번 : 체스판 다시 칠하기 - 자바(JAVA) (0) 2022.08.20 [백준] 111720번 : 숫자의 합 - 자바(JAVA) (0) 2022.08.19 [백준] 2533번 : 사회망서비스(SNS) - 자바(JAVA) (0) 2022.08.14