본문 바로가기
프로그래밍 문제/BOJ(백준 온라인 저지)

[BOJ 10814번] 나이순 정렬(JAVA)

by 테크케찰 2020. 10. 5.

www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

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

www.acmicpc.net

import java.io.*;
import java.util.*;

class Member implements Comparable<Member>{
	int age;
	String name;
	
	Member(int age, String name){
		this.age=age;
		this.name=name;
	}

	@Override
	public int compareTo(Member o) {
		// TODO Auto-generated method stub
		if(this.age>o.age) return 1; //나이에 대해 오름차순
		else if(this.age<o.age)	return -1;
		else return 0;
	}
}

class Main{
	
	static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	static BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
	static StringBuilder sb=new StringBuilder();
	static int N;
	static ArrayList<Member> list;
	
	public static void main(String args[]) throws Exception {
		N=Integer.parseInt(br.readLine());
		list=new ArrayList<>();
		for(int i=0;i<N;i++) {
			String s[]=br.readLine().split(" ");
			list.add(new Member(Integer.parseInt(s[0]), s[1]));
		}
		Collections.sort(list);
		for(int i=0;i<list.size();i++) {
			bw.write(list.get(i).age+" "+list.get(i).name+"\n");
		}
		bw.flush();
		bw.close();
	}
	
}

Member 클래스를 선언해 age와 name을 값으로 받았습니다.

이후 Comparable을 implements해 age만을 기준으로 정렬해 답을 구할 수 있었습니다.