알고리즘/JAVA

[JAVA] 백준 알고리즘 10825 : 국영수

초보개발자꽁쥐 2018. 9. 18. 15:16
반응형


국영수



  문제






  소스


import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;

class Student implements Comparable<Student> {
	String name;
	int k, e, m;
	
	public Student(String name, int k, int e, int m) {
		super();
		this.name = name;
		this.k = k;
		this.e = e;
		this.m = m;
	}

	@Override
	public int compareTo(Student o) {
		if (k == o.k) {
			if(e == o.e) {
				if (m == o.m) {
					return name.compareTo(o.name);
				} else {
					return o.m-m;
				}
			} else {
				return e-o.e;
			}
 		} else {
 			return o.k-k;
 		}
	}

	@Override
	public String toString() {
		return name;
	}
}

public class Main {
	static int N;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		
		TreeSet<Student> ts = new TreeSet<Student>();
		String name;
		int k, e, m;
		
		for (int i=0; i<N; i++) {
			name = sc.next();
			k = sc.nextInt();
			e = sc.nextInt();
			m = sc.nextInt();
			
			ts.add(new Student(name, k, e, m));
		}
		
		Iterator<Student> itr = ts.iterator();
		while(itr.hasNext()) {
			System.out.println(itr.next().toString());
		}
	}
}





  출처


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





반응형