준비 겸, JAVA Stream에 익숙해지기 위해.
문제
https://www.acmicpc.net/problem/10814
나이 - 이름으로 입력 받았을 때, 나이 순으로 정렬하고, 같은 경우 입력 순서대로 정렬한다.
해설 및 코드
public class 나이순정렬 {
public static class User{
int age;
String name;
User(int a, String n){
this.age = a;
this.name = n;
}
public int getAge(){
return this.age;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<User> list = new ArrayList<>();
for(int i=0; i<N; i++){
String[] st = br.readLine().split(" ");
int age = Integer.parseInt(st[0]);
String name = st[1];
list.add(new User(age, name));
}
list = list.stream()
.sorted(Comparator.comparingInt(User::getAge))
.collect(Collectors.toList());
for(User user : list){
System.out.println(user.age + " " + user.name);
}
}
}
list에 먼저 순서대로 정렬한 다음, stream sorted를 이용해 age로 정렬해서 출력하면 끝
Java 문법 정리
Comparator.comparingInt(User::getAge)
- Comparator 라이브러리를 이용해서 Int형 비교를 진행한다.
- User::getAge는 User 객체의 getAge를 불러오는 데, 함수만 된다.
'IT > 알고리즘' 카테고리의 다른 글
[프로그래머스] 종이접기 - Cos Pro 1급 (0) | 2022.04.20 |
---|---|
[BOJ] 순회강연 2109.java (0) | 2021.06.21 |
[BOJ] 가장 긴 증가하는 부분수열2 12015.java (0) | 2021.06.21 |
[BOJ] 합이0 3151.java (0) | 2021.06.01 |
[BOJ] 시리얼번호 1431.java (0) | 2021.05.18 |