백준

백준 정렬 - 10814번 : 나이순 정렬

맴썰 2022. 2. 9. 16:52

https://www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net


 

import java.io.*;
import java.util.*;
public class Main {
	
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		member[] mems = new member[n];
		StringTokenizer st;
		for(int i=0; i<n; i++){
		   st = new StringTokenizer(br.readLine());
	      	   int age = Integer.parseInt(st.nextToken());
	       	   String name = st.nextToken();
                mems[i] = new member(name, age, i);
            }
		br.close();
		Arrays.sort(mems,new Comparator<member>() {
			@Override
			public int compare(member m1, member m2) {
				if(m1.age<m2.age) {
					return -1;
				}
				else if(m1.age==m2.age) {
				    if(m1.idx<m2.idx) return -1;
				    else return 1;
				}
				else return 1;
			}
		});
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        for(int i=0; i<n; i++) {
        	bw.write(mems[i].age + " "+ mems[i].name+"\n");
        }
        bw.close();
    }
	
}
class member{
	String name;
	int age;
	int idx;
	public member(String name, int age, int idx) {
		this.name = name;
		this.age = age;
		this.idx = idx;
	}
}