IT/알고리즘
[BOJ] 나이순 정렬 10814.java
Terriermon
2022. 5. 25. 10:04
준비 겸, JAVA Stream에 익숙해지기 위해.
문제
https://www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
나이 - 이름으로 입력 받았을 때, 나이 순으로 정렬하고, 같은 경우 입력 순서대로 정렬한다.
해설 및 코드
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를 불러오는 데, 함수만 된다.
반응형