IT 기획의 길
백준 10814번 나이순 정렬 [JAVA] 본문
알고리즘 설계
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);
}
}
}
'알고리즘(백준) > 정렬' 카테고리의 다른 글
백준 1026번 보물 [JAVA] (0) | 2020.12.26 |
---|---|
백준 11650번 좌표 정렬하기 [JAVA] (0) | 2020.12.26 |
백준 1181번 단어정렬 [JAVA] (0) | 2020.12.26 |
백준 11399번 ATM [JAVA] (0) | 2020.12.25 |