티스토리 뷰
문제
https://www.acmicpc.net/problem/1181
언어
자바 JAVA
로직
- 문자를 모두 입력받아 리스트에 저장한다.
- 리스트를 정렬한다.
- 비교하는 두 문자열의 길이가 같다면 String의 기본 정렬을 사용한다.
- 비교하는 두 문자열의 길이가 다르다면 두 문자열의 길이 차이를 오름차순으로 정렬한다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력
int n = Integer.parseInt(br.readLine());
List<String> words = new ArrayList<>();
for(int i = 0; i < n; i++) {
words.add(br.readLine());
}
// 정렬
Collections.sort(words, (a,b) -> {
if(a.length() == b.length()) {
return a.compareTo(b);
}
return a.length() - b.length();
});
// 출력
words.stream().distinct().forEach(word -> System.out.println(word));
}
}