728x90
https://www.acmicpc.net/problem/1181
[정렬] Java
오랜만에 자바로 푸니까 다 까먹음 진짜
반성하면서 앞으로 자바로 풀겠습니다..
문제가 딱 생긴게 자바로 풀면 딱이라 시도해봤는데
그건 맞는데 암튼
1. 길이로 정렬 -> Collections.sort사용 comparator써서 a.length()-b.length() 반환
2. 길이가 같으면 사전순으로 정렬 -> Collections.sort comparator에서 a.compareto(b) 사용
3. 중복없이 출력 -> HashSet 사용 (처음 써봄)
소스코드
import java.util.*;
public class CharSotring {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
//중복없이 입력받음
HashSet<String> strSet = new HashSet<>();
String str;
for(int i = 0 ; i < n ; i++){
str = in.nextLine();
strSet.add(str);
}
//정렬 1.길이 2. 길이같으면 사전순
ArrayList<String> arrList = new ArrayList<>(strSet);
Collections.sort(arrList, (a,b)->{if(a.length() == b.length()) return a.compareTo(b); else return a.length()-b.length();});
//출력
for(String s : arrList)
System.out.println(s);
}
}
728x90
'알고리즘 문제풀이' 카테고리의 다른 글
[백준 15650] 알고리즘 18일차 : N과 M(2) (0) | 2020.07.08 |
---|---|
[백준 15649] 알고리즘 17일차 : N과 M(1) (0) | 2020.07.07 |
[백준 1541] 알고리즘 16일차 : 잃어버린 괄호 (python) (0) | 2020.07.06 |
[백준 11650] 알고리즘 14일차 : 좌표 정렬하기 (0) | 2020.03.15 |
[백준 1427] 알고리즘 13일차 : 소트인사이드 (0) | 2020.03.14 |