문제 이해 & 기본 개념
- 회원의 나이와 이름이 입력된다.
- 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 문제
중요 포인트
- 입력 데이터를 클래스로 묶는 것
- Comparable 인터페이스를 사용하여 정렬 기준을 재정의하는 것
최종 풀이
- Comparable<T> 인터페이스의 compareTo 메소드를 오버라이드하면 정렬 기준을 변경할 수 있다.
- compareTo의 반환 값이 양수이면 두 객체를 swap한다.
class User implements Comparable<User>{
String name_;
int age_;
public User(int age_, String name_) {
this.name_ = name_;
this.age_ = age_;
}
@Override
public int compareTo(User u){
return this.age_ - u.age_;
}
}
소스 코드
import java.util.*;
class User implements Comparable<User>{
String name_;
int age_;
public User(int age_, String name_) {
this.name_ = name_;
this.age_ = age_;
}
@Override
public int compareTo(User u){
return this.age_ - u.age_;
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
User[] user = new User[n];
for (int i = 0; i < n; i++) user[i] = new User(sc.nextInt(), sc.next());
Arrays.sort(user);
for (User u : user) System.out.println(u.age_ + " " + u.name_);
}
}
'BOJ' 카테고리의 다른 글
[ 백준 1463 ] - 1로 만들기 (Kotlin) (0) | 2023.02.13 |
---|---|
[ 백준 11055 ] - 가장 큰 증가 부분 수열 (Kotlin) (0) | 2023.02.11 |
[ 백준 11659 ] - 구간 합 구하기 4 (Java, Kotlin) (0) | 2023.02.08 |
[ 백준 1676 ] - 팩토리얼 0의 개수 (Java) (0) | 2023.02.08 |
[ 백준 16964 ] - DFS 스페셜 저지(Java) (0) | 2023.02.04 |