IT 기획의 길

백준 10814번 나이순 정렬 [JAVA] 본문

알고리즘(백준)/정렬

백준 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);
		}

	}
}

'알고리즘(백준) > 정렬' 카테고리의 다른 글

백준 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