백준
이런저런 문제들 #10825: 국영수 [JAVA]
chaechaepower
2023. 6. 12. 23:13
https://www.acmicpc.net/submit/10825/47897474
로그인
www.acmicpc.net
정리
어려운 문제는 아니고 자꾸 까먹는 것들 정리하기 위해 씀.
1. 정렬 조건 구현
문제에서 주어진 정렬 조건이 다음과 같다.
- 국어 점수가 감소하는 순서로
- 국어 점수가 같으면 영어 점수가 증가하는 순서로
- 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
- 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)
다음과 같이 구현하면 깔끔하다.
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() 함수 사용