알고리즘(백준)/정렬
백준 10814번 나이순 정렬 [JAVA]
완벽하기 쉽지 않지만 완벽해지려고 노력해야 한다
2020. 12. 26. 21:47
알고리즘 설계
1. 나이와 이름을 갖는 Person 객체를 만든다
2. Comparator를 이용하여 Person 객체의 데이터를 나이 오름차순으로 정렬한다
3. 나이가 같으면 가입한 순으로 정렬하라는데 이 과정은 필요없다 추가적인 정렬과정을 안가쳐도 자연스럽게 입력한 데이터 순서대로 데이터가 저장이 되기 때문이다
import java.util.*;
class Person {
int age;
String name;
public Person(int age,String name){
this.age=age;
this.name=name;
}
public String toString() {
return age+" "+name;
}
}
public class 나이순정렬 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int N=scan.nextInt();
List<Person> person=new ArrayList<>();
for(int i=0;i<N;i++) {
int age=scan.nextInt();
String name=scan.next();
person.add(new Person(age,name));
}
Collections.sort(person,new Comparator<Person>() {
public int compare(Person i1,Person i2) {
if(i1.age>i2.age)
return 1;
else if(i1.age<i2.age)
return -1;
else
return 0;
}
});
for (Person p: person) {
System.out.println(p);
}
}
}