본문 바로가기

백준

이런저런 문제들 #10825: 국영수 [JAVA]

https://www.acmicpc.net/submit/10825/47897474

 

로그인

 

www.acmicpc.net

 

 

 


 

 

 

 

정리

 

 

 

어려운 문제는 아니고 자꾸 까먹는 것들 정리하기 위해 씀.

 

 

 

 

 

 

 

 

 

 

1. 정렬 조건 구현

 

 

 

 

 

 

문제에서 주어진 정렬 조건이 다음과 같다.

 


  1. 국어 점수가 감소하는 순서로
  2. 국어 점수가 같으면 영어 점수가 증가하는 순서로
  3. 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
  4. 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)

 

 

 

 

 

다음과 같이 구현하면 깔끔하다.

 

 

class Person implements Comparable<Person>{
	String name;
	int kor;
	int eng;
	int math;
	
	public Person(String name,int kor, int eng, int math) {
		this.name=name;
		this.kor=kor;
		this.eng=eng;
		this.math=math;
	}
	
	@Override
	public int compareTo(Person o) {
		if(this.kor>o.kor) return -1;
		if(this.kor<o.kor) return 1;
		if(this.eng>o.eng) return 1;
		if(this.eng<o.eng) return -1;
		if(this.math>o.math) return -1;
		if(this.math<o.math) return 1;
		return this.name.compareTo(o.name);
	}
}

 

 

 

 

 

 

 

 

2. 문자열 사전순 비교

 

 

 

 

 

String.compareTo() 함수 사용