문제
https://www.acmicpc.net/problem/10814
문제 설명
문제 풀이
Comparable 구현
class Person implements Comparable<Person>{
/*생략*/
public int compareTo(Person p) {
if(this.age == p.age) { //나이가 같으면
return this.index - p.index; //가입한 순 비교
}
else { //나이가 다르면
return this.age - p.age; //나이 비교
}
}
}
참고 :
2022.08.01 - [✏️Java 공부/기타 등등] - [Java 공부/기타] 객체 정렬하기 (Comparable & Comparator)
코드
import java.util.*;
class Person implements Comparable<Person>{
public int age; //나이
public String name; //이름
public int index; //가입한 순서
Person(int a, String n, int i) {
this.age = a;
this.name = n;
this.index = i;
}
public int compareTo(Person p) {
if(this.age == p.age) { //나이가 같으면
return this.index - p.index; //가입한 순 비교
}
else { //나이가 다르면
return this.age - p.age; //나이 비교
}
}
}
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Person> people = new ArrayList<>();
for(int i = 0; i < n; i++) {
people.add(new Person(sc.nextInt(), sc.next(), i));
}
Collections.sort(people);
for(Person p : people) {
System.out.println(p.age + " " + p.name);
}
}
}
'🧑💻코딩 테스트 > 백준 (BOJ)' 카테고리의 다른 글
[코딩테스트/백준 알고리즘] 2164번 : 카드2 (Java, 자바 풀이) (0) | 2022.08.03 |
---|---|
[코딩테스트/ 백준 알고리즘] 10866번 : 덱 (Java, 자바 풀이) (0) | 2022.08.03 |
[코딩 테스트/백준 알고리즘] 1295번 : 팰린드롬수(Java 풀이) (0) | 2022.08.01 |
[코딩 테스트/백준 알고리즘] 11650번 : 좌표 정렬하기 (Java 풀이) (0) | 2022.08.01 |
[코딩 테스트/백준 알고리즘] 1181번 : 단어 정렬 (Java 풀이) (0) | 2022.08.01 |
댓글